我可以同时在emacs中使用常见的lisp和Clojure吗? 我想将每个lisp-REPL放在自己的缓冲区中,如果我这样做,我怎么能控制哪个缓冲区将其数据发送到哪个lisp?
答案 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
中定义的名称。在此示例中,我将使用cmucl
,sbcl
,clozure
或clojure
。
您可以使用命令C-c C-x c切换“活动”REPL。有关详细信息,请参阅Slime Documentation on controlling multiple connections。