2013-06-10 5 views
3

Я пытаюсь настроить режим slime в emacs для использования общего lisp. Когда я попытаюсь запустить слизь с M-x slime, я получаю сообщение об ошибке:emacs lisp не запускается

process inferior-lisp not running.

Итак, я проверил значение переменной inferior-lisp-program, которое оказалось "/opt/sbcl/bin/sbcl". sbcl - это аббревиатура для реализации распространенного lisp, известного как обычный lisp. Обратите внимание, что эта переменная определена в файле slime.el. Поскольку у меня нет sbcl (предыдущий каталог вообще не существует на моей машине), установленный на моей машине (который работает os x 10.8.3), это не сработает.

У меня есть реализация clisp, которая находится в каталоге: /opt/local/bin/. Я пытался изменить значение переменной inferior-lisp-program по:

(setq inferior-lisp-program '/opt/local/bin/clisp/)

Однако это не сработало, и я не знаю, что еще попробовать.

  1. Как я могу получить нижний lisp для запуска и, следовательно, работать на слизь?

EDIT: Дополнительная информация Я считаю, что это может быть полезно. Если я пытаюсь просто начать общую шепелявость в Emacs, выполнив M-x run-lisp я получаю следующий выход из Emacs:

(progn (load "/Users/s2s2/.emacs.d/slime/swank-loader.lisp" :verbose t) (funcall \ 
(read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-s\ 
erver") "/var/folders/wf/yjgymt8j14v2tqwjnny68wq00000gn/T/slime.28222"))   

Can't exec program: /opt/sbcl/bin/sbcl            

Process inferior-lisp exited abnormally with code 1        
Can't exec program: /opt/sbcl/bin/sbcl            

Process inferior-lisp exited abnormally with code 1 

Надеется, что это помогает! Вся помощь очень ценится!

+0

Я не использую SLIME сам, поэтому я уверен, что кто-то будет иметь лучший ответ, но я бы предложил использовать 'Mx по поводу значение RET/опт/sbcl/bin/sbcl RET', чтобы попытаться выяснить, откуда взялось это значение изначально (и, следовательно, какая переменная нуждается в настройке). – phils

+0

Фактически вы можете, вероятно, дать ему значение «'/opt/sbcl/bin/sbcl »для более точного совпадения, должно быть много обращений к некотируемой версии. – phils

+0

@phils Вы могли бы объяснить, как «дать ему котируемую стоимость»? Я еще не знаком с emacs. Я понял множество основ, необходимых, чтобы стать более эффективными, хотя :) – CodeKingPlusPlus

ответ

5

Переменная slime-lisp-implementations имеет более высокий приоритет, чем inferior-lisp-program для слизи, если установлена; попробуйте это вместо того, чтобы (настроить параметры соответственно):

(setq slime-lisp-implementations 
     '((clisp ("/opt/local/bin/clisp" "-q -I")) 
     (sbcl ("/usr/local/bin/sbcl") :coding-system utf-8-unix))) 
4

Первое, что нужно попробовать, чтобы выполнить команду в обычном окне оболочки - просто введите или скопируйте и вставьте путь к исполняемому файлу и посмотрим, что bash говорит вам:

$ sbcl < /dev/null 
bash: sbcl: command not found 
$ clisp < /dev/null 
<<clisp splash screen>> 
$ which clisp 
/usr/bin/clisp 

После того, как вы узнали, что правильно исполняемый, вы устанавливаете inferior-lisp к нему:

(setq inferior-lisp "/usr/bin/clisp") 

Примечания:

  1. Это должна быть строка , а не символ, поэтому вам нужны котировки ".
  2. Он должен указывать на файл, а не каталога, так что ваш трейлинг слэша / неправильно