我为Clojure和Common Lisp都设置了Emacs,但我想为Common Lisp添加(slime-setup'(slime-fancy))。如果我将该行添加到init.el中,则Clojure将无法工作:它会给我一个repl,但在运行任何代码后会挂起。
我的配置
对于Clojure:
- 我通过ELPA设置了clojure-mode、 slime、 slime-repl
- 我在项目目录中运行$ lein swank
- 然后M-x slime-connect以hack clojure
对于Common Lisp,我在init.el中将其放置在ELPA代码之后:
(add-to-list 'load-path "~/.elisp/slime")
(require 'slime)
(add-to-list 'slime-lisp-implementations '(sbcl ("/opt/local/bin/sbcl") :coding-system utf-8-unix))
;; (slime-setup '(slime-fancy))
所以,如果我取消注释最后一行,Clojure 将会出现问题。但是,slime-fancy 是一个非常重要的元包,用于研究 Common Lisp。
有没有一种方法可以在不更改配置和重新启动的情况下使它们都能正常工作,以便我需要切换语言时使用?
更新
我发现slime-fancy加载的slime-autodoc是导致程序卡顿的原因。
(slime-setup '(slime-fancy))
(setq slime-use-autodoc-mode nil)
这个配置允许同时运行Common Lisp和Clojure SLIME,但没有slime-autodoc。我发现我使用的是CVS版本的SLIME,因为在ELPA代码后手动执行(add-to-list 'load-path "~/.elisp/slime")。这并不能解决问题。也许有一个特定日期的版本适用于Clojure?这里有个人说CVS版本适合他:http://www.youtube.com/watch?v=lf_xI3fZdIg&feature=player_detailpage#t=221s