我在编辑器(Neovim)中使用了许多Haskell插件,其中一个是ghcmod-vim
,它与syntastic
一起工作,在编写Haskell代码时提供语法检查。
有一次,我为Mac OS X安装了GHC,作为我构建系统配置中许多问题的临时解决方案。这些问题已经解决,所以我从/Applications
中删除了.app
捆绑包,并删除了它附加到~/.zshrc
的行。
出于某种原因,即使是现在,当我写一个Haskell文件并将其保存到磁盘时,Neovim的消息缓冲区中也会出现一个错误:
"myfile.hs" 10L, 163C written
syntastic: error: checker output:
/Applications/ghc-7.8.4.app/Contents/lib/ghc-7.8.4/settings: openFile: does not exist (No such file or directory)
syntastic: error: checker haskell/ghc_mod returned abnormal status 1
settings
文件包含一个具有各种构建环境选项的键/值对列表,这些选项通常与ghc
二进制文件一起存储,并且在使用Homebrew安装的/usr/local/bin
中与ghc
二进制文件一起存在。
由于某种原因,syntastic
或ghc_mod
检查器模块在错误的位置查找设置文件。尽管事实上,在我的任何Neovim或插件配置文件中,或在任何环境变量中都没有引用该路径。
如何让ghc_mod
或syntastic
在正确的位置查找GHC设置文件?
今天早上我决定使用cabal
重新安装ghc-mod
,这似乎完全解决了问题!
所采取的其他步骤包括运行:PlugUpdate
,并完全删除和重新安装ghcmod-vim
和syntastic
插件,尽管我不知道这些插件是否有助于间接修复问题——问题一直存在,直到我运行cabal update
和cabal install ghc-mod
(单独重新安装)。
正如在评论中指出的那样,这个问题的根本原因是ghc-mod
在5.4.0版本之后引入了突破性的更改,这迫使syntastic
的维护人员放弃了对它的支持。