Могу ли я использовать два разных lisp + slime/swanks из тех же emacs?

Можно ли использовать общие lisp и Clojure из emacs одновременно? Я хотел бы иметь каждый lisp -REPL в своем собственном буфере, и если бы я сделал это, как я мог бы контролировать, какой буфер отправил свои данные, на которые lisp?

Ответы

Ответ 1

Да. В документации к Slime вы найдете slime-lisp-implementations. Вот как я определил это в моем .emacs:

(setq slime-lisp-implementations
   '((cmucl ("/usr/local/bin/lisp") :coding-system iso-8859-1-unix)
     (sbcl ("/usr/local/bin/sbcl" "--core" "/Users/pinochle/bin/sbcl.core-with-swank") :init (lambda (port-file _) (format "(swank:start-server %S :coding-system \"utf-8-unix\")\n" port-file)))
     (clozure ("/Users/pinochle/bin/ccl"))
     (clojure ("/Users/pinochle/bin/clojure") :init swank-clojure-init)))

Вы запускаете свои лисы, используя M-- M-x Slime. Он попросит вас запустить Lisp, и вы используете имя, указанное в slime-lisp-implementations. В этом примере я использовал бы cmucl, sbcl, clozure или clojure.

Вы можете переключить "активный" REPL с помощью команды C-c C-x c. Для получения дополнительной информации см. Slime Documentation для управления несколькими подключениями.