2012-01-13 67 views
2

我在链接中描述的方式中使用的emacs中的hlint与hs-lint.el完全相同。Hlint与emacs集成在新机器上无法正常工作

hlint存在于我的〜/ .cabal/bin目录中,它位于我的$ PATH中,并且当我从命令行调用它时,一切都按预期工作。当我设置了一个新的机器上,并试图emacs的内部调用它,但是,我得到的小缓冲区以下消息:

error in process sentinel: Moved past last error 

,并在*hs-lint*缓冲区中的以下内容:

-*- mode: hs-lint; default-directory: "/home/wvoq/project/" -*- 
HLint started at Fri Jan 13 02:48:53 

hlint /home/wvoq/project/myfile.hs 
/bin/bash: hlint: command not found 

HLint exited abnormally with code 127 at Fri Jan 13 02:48:53 

根据我的理解,没有理由认为bash应该很难找到hlint。在那儿?

在此先感谢您的任何建议。

回答

4

如果您从桌面快捷方式PATH启动Emacs,它不是您的shell具有的PATH。如果你从shell启动Emacs,你应该能够确认这是问题所在。有很多方法可以解决这个问题。例如,在OS X上,您可以将环境变量添加到~/.MacOSX/environment.plist。或者你可以在Emacs里面设置PATH,例如:

(setenv "PATH" (concat "~/.cabal/bin:" (getenv "PATH"))) 
(add-to-list 'exec-path "~/.cabal/bin") 
+0

是的,第一行足以解决它。再次感谢。 – wvoq 2012-01-14 05:32:46

+1

您也可以在OS X上正常启动Emacs,并使用名为[exec-path-from-shell]的elisp库(https://github.com/purcell/exec-path-from-shell)来设置Emacs的$ PATH匹配在shell中看到的。可安装的软件包可在Marmalade和[Melpa](http://melpa.milkbox.net/)中获得。 – sanityinc 2012-09-13 09:51:20

相关问题