我为 clojure 和 common lisp 设置了 emacs,但我也想要为 common lisp 设置 (slime-setup '(slime-fancy))。如果我将该行添加到 init.el,clojure 将不起作用:它给了我 repl,但在我运行任何代码后它挂起。
我的配置
对于clojure:
- 我通过 ELPA 设置了 clojure-mode、slime、slime-repl
- 我在项目目录中运行 $ lein swank
- 然后 Mx slime-connect 破解 clojure
对于常见的 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)
此配置允许运行常见的 lisp 和 clojure SLIME。甚至同时。但没有粘液自动文档。
我还发现我正在使用 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