2012-01-13 2 views
2

Я использую hlint из emacs с 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

Если вы запускаете Emacs с ярлыка на рабочем столе PATH, это не PATH, что и ваша оболочка. Если вы запустите Emacs из оболочки, вы сможете подтвердить, что это проблема. Есть много способов исправить это. Например, в OS X вы можете добавить переменные среды в ~/.MacOSX/environment.plist. Или вы можете установить PATH внутри Emacs что-то вроде:

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

Yep, первая линия была достаточно, чтобы решить это для меня. Еще раз спасибо. – wvoq

+1

Вы также можете просто запустить Emacs на OS X в обычном режиме и использовать библиотеку elisp под названием [exec-path-from-shell] (https://github.com/purcell/exec-path-from-shell), чтобы установить Emacs '$ PATH, чтобы соответствовать тому, что видно в оболочке. Устанавливаемые пакеты доступны в Marmalade и [Melpa] (http://melpa.milkbox.net/). – sanityinc

Смежные вопросы