g:quickrun_config.some.execの%sに接頭語Runが付いて実行される
aiya000 opened this issue · comments
以下の手順を踏むと、異常な結果が出ます 🤔
1
~/vimrcを以下の内容で作成
set nocompatible
set rtp+=~/Repository/vim-quickrun
let g:quickrun_config = {
\ 'haskell': {
\ 'exec': 'runghc %s',
\ },
\ 'eta': {
\ 'exec': 'eta %s',
\ },
\}
2
Main.hsを以下の内容で作成
main :: IO ()
main = print 10
3
以下のコマンドを実行
$ vim Main.hs -u ~vimrc +'QuickRun eta'
異常な結果
[1 of 1] Compiling Main ( /home/aiya000/Repository/workspace/Haskell/01_eta/Main.hs, /home/aiya000/Repository/workspace/Haskell/01_eta/Main.jar ) [flags changed]
Linking Run/home/aiya000/Repository/workspace/Haskell/01_eta/Main.jar ...
Run/home/aiya000/Repository/workspace/Haskell/01_eta/Main.jar: openFile: does not exist (No such file or directory)
(実際これは/home/aiya000/Repository/workspace/Haskell/01_eta
にMain.hsを作成し、実行した結果)
:QuickRun eta
相当のことをコマンドラインで実行すると、正常に実行が終わります。
$ eta Main.hs
(ここでなぜかMain.jarを生成する)
etaコマンドは、ソースをRun{ソースのファイル名から.hsを取り除いた名前}.jar
にコンパイルするコマンドです。
(今回はRunMain.jar
を生成するはず)
なぜか正常な結果
上記のetaコードはそのままHaskellとして実行できるので、:QuickRun haskell
(runghc %s
)を実行すると
$ vim Main.hs -u ~/vimrc +'QuickRun haskell'
正常な結果が得られます。
10
(runghcは、Haskellのコードをスクリプトとしてそのまま実行するコマンド)
明らかにetaがおかしいですが、eta単体で実行しても正常に動作するので、よくわかりません 🤔
タスケテ...
と書いて、QuickRun無しに再現できたのでごめんなさい……。