arn*_*nab 6 lisp emacs installation common-lisp slime
我可以运行emacs并启动slime(with M-x slime
).此时,我在劣质lisp缓冲区中获取REPL 并可以在那里运行lisp.但是,当我在另一个缓冲区没有粘液,善良作品(的开拓Lisp代码C-x C-e
,C-c C-k
等等),我一直在看到这个消息的缓冲区(用编码器脉冲数数):
粘连:未连接.
轮询 "/var/folders/B9/B9B5J15dH+aNt5J5gkROEk+++TI/-Tmp-/slime.3202" ..(中止与`的Mx煤泥中止连接".)[69倍]
让我觉得slime没有连接到正确的lisp解释器,但由于我对emacs和lisp很新,我被困在这里.我的设置是:
以下是我在同一个Emacs安装中使用Common Lisp和Clojure以及优秀的emacs-starter-kit所做的工作.这不会让你同时使用它们(你必须重新启动Emacs才能从CL切换到Clojure,反之亦然)
我相信ELPA中的SLIME版本很旧,但适用于Clojure.较新版本的SLIME不适用于Clojure.此外,这个版本的SLIME似乎被剥离了(没有swank-loader.el?)并且不能与Common Lisp一起使用.
这些是我为实现这一目标所采取的步骤,这对我有用.所有的比特都在积极发展,所以我认为这个领域的破产很可能.
使用新的Emacs(根本没有配置,所以.emacs
暂时移动其他任何地方)安装ELPA:
http://tromey.com/elpa/install.html
在Emacs中,安装软件包"slime"和"slime-repl".(M-x package-list-packages
然后C-s slime
再i
选择和x
安装)
将文件移入~/.emacs.d/elpa/slime-20100404
和移动~/.emacs.d/elpa/slime-repl-20100404
到新目录,如~/hacking/lisp/elpa-slime
.
抛弃ELPA安装:$ rm -rf .emacs.d
.
现在克隆emacs-starter-kit并将其移至.emacs.d
.我只用技术性的Github的新副本做了这个,所以如果你遇到问题就先试试.
使用CVS获取最新的SLIME:
cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co cvs-slime
Run Code Online (Sandbox Code Playgroud)
我不认为OS X安装了CVS,因此您需要从Macports,Homebrew或其他东西安装它.
我把cvs-slime
在~/hacking/lisp
.
希望下面的Emacs Lisp显而易见:
(defun slime-common-lisp ()
(interactive)
(setq inferior-lisp-program "/usr/local/bin/sbcl") ; your Common Lisp impl
(add-to-list 'load-path "~/hacking/lisp/cvs-slime/") ; your SLIME from CVS directory
(require 'slime)
(slime-setup '(slime-repl))
(slime))
(defun slime-clojure ()
(interactive)
(add-to-list 'load-path "~/hacking/lisp/elpa-slime")
(require 'slime)
(slime-setup '(slime-repl))
(slime-connect "localhost" 4005))
Run Code Online (Sandbox Code Playgroud)
对于Clojure,你必须启动Clojure运行时和swank-clojure
端口4005,我认为使用Leiningen是批准的方法:
创建一个新项目:
$ lein new project
$ cd project
Run Code Online (Sandbox Code Playgroud)
在project.clj
:
(defproject newclj "1.0.0-SNAPSHOT"
:description "FIXME: write"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]]
:dev-dependencies [[swank-clojure "1.2.1"]])
Run Code Online (Sandbox Code Playgroud)
然后:
$ lein deps
$ lein swank
Run Code Online (Sandbox Code Playgroud)
编辑添加:
如果您在使用此设置时发现SLIME REPL中的Paredit已损坏,请查看以下内容:http://www.emacswiki.org/emacs/ParEdit#toc3
至少还有一个潜在的问题是,AFAICT,如果你打开一个Common Lisp源文件然后启动SLIME,你将无法将表单从第一个缓冲区发送到SLIME缓冲区.因此,在打开任何Common Lisp源文件之前打开一个SLIME缓冲区,它应该可以工作.这似乎不适用于Clojure.
参考文献:
使用slime-fancy(slime-autodoc)设置clojure和常见lisp的emacs
https://github.com/technomancy/swank-clojure/issues/closed#issue/31/comment/544166