我正在使用haskellmode-vim插件。不幸的是,它似乎与cabal-dev没有很好的协作(显然它直接调用GHC)。现在我想知道是否有办法让haskellmode在cabal-dev管理的项目中工作(理想情况下,没有很多项目特定的设置?)。搜索到这个我只发现了一些指向ghcmod的东西,我不确定在这种情况下它会有什么帮助。
答案 0 :(得分:1)
我在freenode #haskell
提供了一些相当大的帮助,我自己也想到了这一点。
在你的.vimrc中你应该有以下几行(如果你有hdevtools和cabal-dev设置,可能已经有了)
取自http://lpaste.net/94999原作者未知。在此略微编辑以删除弃用警告。
function! FindCabalSandboxRoot()
return finddir('.cabal-sandbox', './;')
endfunction
function! FindCabalSandboxRootPackageConf()
return glob(FindCabalSandboxRoot().'/*-packages.conf.d')
endfunction
let g:hdevtools_options = '-g-ilib -g-isrc -g-i. -g-idist/build/autogen -g-Wall -g-package-db='.FindCabalSandboxRootPackageConf()
haskellmode-vim的文档建议在.vimrc
中使用以下行:
au Bufenter *.hs compiler ghc
读取haskellmode-vim插件源,ghc的选项存储在名为ghc_staticoptions的缓冲区变量中,所以现在我们知道了使cabal-dev工作所需要知道的一切。
au Bufenter *.hs let b:ghc_staticoptions = '-ilib -isrc -i. -idist/build/autogen -Wall -package-db='.FindCabalSandboxRootPackageConf()
然而,正如this SO question中所提到的,haskellmode-vim并没有完全消亡,而是在休息。所以你可能想要查看一个不同的插件。