Emacs

2012-12-02 24 views
13

'da "lein" REPL'yi başlatılamıyor Emacs'te, clojure-mode kullanırken, C-c C-z numaralı REPL'yi başlatmalıyım. (eval-expression (getenv "PATH") aracılığıyla, hatta Emacs öyle diyor) Benim PATH içindedir /usr/local/bin (brew aracılığıyla) ve /usr/local/bin yüklü lein varEmacs

Searching for program: no such file or directory: lein 

: Ben denemek zaman, gerçi ben hata alıyorum.

Neyi eksik?

+0

Burada sizinki gibi bir soru var: http://stackoverflow.com/questions/13243048/mac-osx-emacs-24-2-and-nrepl-el-not-working. Belki de answare size yardımcı olabilir. ;) –

cevap

30

Ah! PATH ortam değişkeni, emacs arama yollarının tümü ve hepsi değildir. Ayrıca "exec-yolu" da var. Görünüşe göre mostly the same thing but not exactly yapıyor. ekleyerek Neyse

: .emacs.d/init.el (veya .emacs sen nasıl rulo buysa) benim açımdan işleri temizlenir benim için

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

. İlk, (basit) add-to-list çalışacaktı

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

: Yukarıda bağlantılı doc gibi biraz daha kapsamlı bir şey öneriyor. Ama YMMV.

1

Aynı problem vardı ve neyin yanlış olduğunu araştırmaya başladım. Yakında benim exec yolu bu (basitleştirilmiş örnekte) gibi görünüyordu keşfetti:

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

yerine ayrı yollar listesinin sadece bir uzun dize içeren bir liste oldu. Env PATH değişkenim tam olarak aynı görünüyordu. Açıkçası sorun benim kabuğumdan geliyordu.

Balık kabuğunu kullanıyorum. PATH değişken ayırıcı sadece bir alan. Kullandığım yürütme yolu kabuk paketi, ayrıştırılamıyor. benim .emacs.d/init.el bu ekleyerek düzelttim:

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

Güncelleme: Sonunda eski bir exec-yol-den-kabuk paketi oldu. 1.8 sürümünü kullan. Balıkla (ve tcsh) iyi çalışır.