如何让vim-haskellmode和cabal-dev一起工作?

时间:2014-02-22 13:41:00

标签: haskell vim

我正在使用haskellmode-vim插件。不幸的是,它似乎与cabal-dev没有很好的协作(显然它直接调用GHC)。现在我想知道是否有办法让haskellmode在cabal-dev管理的项目中工作(理想情况下,没有很多项目特定的设置?)。搜索到这个我只发现了一些指向ghcmod的东西,我不确定在这种情况下它会有什么帮助。

1 个答案:

答案 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并没有完全消亡,而是在休息。所以你可能想要查看一个不同的插件。