10

I'm using nrepl.el, Emacs 24.2. My S.O version is OS X Lion 10.7.5.

Running the command [M-x] nrepl after start a REPL session through lein (:~ $ lein repl) i am able to connect to it but if i try to use [M-x] nrepl-jack-in i get the message bellow:

error in process sentinel: Could not start nREPL server: /bin/bash: lein: command not found

I installed leiningen using the instructions in the main site and reinstalled it using homebrew with the command brew install leiningen --devel but both methods give me the same error.

Adding the path /usr/loca/bin to emacs exec-path list or trying to configure nrepl.el variable nrepl-lein-command to point to the full path of my lein installation does not help.

My emacs configuration can be found here: https://github.com/khaoz/emacs-files

What i'm doing wrong ?

Thanks :)

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Giuliani Sanches
  • 650
  • 5
  • 20
  • are you by chance on a Mac and staring emacs not from the command line? – Arthur Ulfeldt Nov 06 '12 at 01:22
  • no. I start it from spotlight. – Giuliani Sanches Nov 06 '12 at 01:34
  • Just a warning in advance, if you're ever planning to use ac-nrepl - at least at the moment it seems to sometimes do wonky things when you started the server with nrepl-jack-in. Maybe they fixed this by now, just recall it if you run into problems. – Cubic Nov 06 '12 at 08:08

4 Answers4

13

While @Arthur is correct a much simpler solution to your problem would be to install the exec-path-from-shell Emacs extension. It will copy your shell PATH (and MANPATH) to Emacs automatically and fairly reliably. This means that the PATH would be correct no matter where you started Emacs from (spotlight included).

Bozhidar Batsov
  • 55,802
  • 13
  • 100
  • 117
12

for those of you landing on this question who are using a Mac:

lein needs to be on the path as seen by Emacs. This can be done by starting Emacs from bash

/Applications/Emacs.app/Contents/MacOS/Emacs project.clj

then: M-x nrepl-jack-in

If this solves the problem you can configure emacs to use the correct path by following these instructions

Arthur Ulfeldt
  • 90,827
  • 27
  • 201
  • 284
2

If you are seeing this error in Linux, you may need to set your PATH in ~/.bash_profile instead of ~/.bashrc when running emacs from the menu instead of the shell.

postfuturist
  • 22,211
  • 11
  • 65
  • 85
1

I had to do this:

;; set the path as terminal path [http://lists.gnu.org/archive/html/help-gnu-emacs/2011-10/msg00237.html]
(setq explicit-bash-args (list "--login" "-i"))

;; fix the PATH variable for GUI [http://clojure-doc.org/articles/tutorials/emacs.html#osx] 

(defun set-exec-path-from-shell-PATH ()
  (let ((path-from-shell
         (shell-command-to-string "$SHELL -i -l -c 'echo $PATH'")))
    (setenv "PATH" path-from-shell)
    (setq exec-path (split-string path-from-shell path-separator))))

(when window-system (set-exec-path-from-shell-PATH))
k1m190r
  • 1,213
  • 15
  • 26