In Emacs, when using clojure-mode
, I ought to be able to launch a REPL with C-c C-z
. Whenever I try, though, I get the error:
Searching
Ah! The PATH
environment variable isn't the end-all and be-all of emacs search paths. There's also the "exec-path". It apparently does mostly the same thing but not exactly.
Anyway, adding:
(add-to-list 'exec-path "/usr/local/bin")
To my .emacs.d/init.el
(or .emacs
if that's how you roll) cleared things up for me. The doc linked above suggests something a little more comprehensive, like:
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
I'd try the (simpler) add-to-list
, first. But YMMV.
I had the same problem and started to investigate what was wrong. I soon discovered my exec-path looked like this (simplified example):
("/usr/local/bin /bin /sbin").
It was a list with just one long string instead of a list of separate paths. My env PATH variable looked exactly the same. Obviously the problem was coming from my shell.
I use fish-shell. It's PATH variable separator is just a space. The exec-path-from-shell package I use can't parse it. I fixed it by appending this to my .emacs.d/init.el:
(setq exec-path (split-string (car exec-path)))
Update: In the end it was an outdated exec-path-from-shell package. Use version 1.8. It works well with fish (and tcsh).