我可以使用同一个emacs中的两个不同的lisp + slime / swank吗?

时间:2009-08-03 16:48:38

标签: emacs lisp clojure slime

我可以同时在emacs中使用常见的lisp和Clojure吗? 我想将每个lisp-REPL放在自己的缓冲区中,如果我这样做,我怎么能控制哪个缓冲区将其数据发送到哪个lisp?

1 个答案:

答案 0 :(得分:19)

是。在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启动你的lisps。它将询问您启动哪个Lisp,并使用您在slime-lisp-implementations中定义的名称。在此示例中,我将使用cmuclsbclclozureclojure

您可以使用命令C-c C-x c切换“活动”REPL。有关详细信息,请参阅Slime Documentation on controlling multiple connections