2012-12-02 51 views
13

在Emacs中,當使用clojure-mode時,我應該能夠使用C-c C-z啓動REPL。每當我嘗試,不過,我得到的錯誤:無法在Emacs中啓動`lein` REPL

Searching for program: no such file or directory: lein 

我已經安裝在/usr/local/bin(通過brew)和/usr/local/bin是我PATHlein(甚至是Emacs中是這麼說的,通過eval-expression (getenv "PATH"))。

我錯過了什麼?

+0

A在這裏提出了類似於你的問題:http://stackoverflow.com/questions/13243048/mac-osx-emacs-24-2-and-nrepl-el-not-working。也許answare可以幫助你。 ;) –

回答

30

啊!環境變量並不是emacs搜索路徑的最終和全部。還有「執行路徑」。它顯然是mostly the same thing but not exactly

不管怎麼說,並補充說:

(add-to-list 'exec-path "/usr/local/bin") 

要我.emacs.d/init.el(或.emacs如果這就是你怎麼卷)茅塞頓開我。以上鍊接的文檔表明一些更全面,如:

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin")) 
(setq exec-path (append exec-path '("/usr/local/bin"))) 

我想嘗試的(簡單)add-to-list,第一。但是YMMV。

1

我有同樣的問題,並開始調查什麼是錯的。 很快我就發現我的exec路徑看起來像這樣(簡化的例子):

("/usr/local/bin /bin /sbin"). 

這是隻用一個長字符串,而不是單獨的路徑列表清單。 我的env PATH變量看起來完全一樣。顯然問題來自我的外殼。

我用魚殼。它是PATH可變分隔符只是一個空間。 我使用的exec-path-from-shell軟件包無法解析它。 我固定它通過附加這個我.emacs.d/init.el:

(setq exec-path (split-string (car exec-path))) 

更新: 到底這是一個過時的exec-路徑從殼包。使用版本1.8。它適用於魚類(和tcsh)。