pro*_*eek 6 lisp emacs clojure slime
我使用Aquamacs,而Aquamacs预先配备了SLIME.
(setq inferior-lisp-program "/usr/local/bin/sbcl") #####!!!
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME/contrib")
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME")
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud)
正如在某处所要求的那样,我尝试通过添加此代码来使用Clojure.
(add-to-list 'load-path "~/clojure/clojure-mode")
(setq inferior-lisp-program "/Users/smcho/bin/clj") ################
(require 'clojure-mode)
(setq auto-mode-alist
(cons '("\\.clj$ . clojure-mode")
auto-mode-alist))
(add-hook 'clojure-mode-hook
'(lambda ()
(define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)))
)
Run Code Online (Sandbox Code Playgroud)
我无法使用SLIME运行Clojure,但我对当前设置感到满意,唯一的问题是因为(setq inferior-lisp-program ...)代码,我必须.emacs根据我使用Clojure或SBCL来更改代码.
有什么方法可以解决这个问题吗?我可以选择多个(劣质)Lisps吗?
我可以让Clojure在Aquamacs上运行.有关Aquamacs问题,请参阅带有'lein swank'的Running Clojure.忘记上面写的设置,如果你想运行Aquamacs/Clojure.你只需要一行,(slime-setup '(slime-repl))和lein swank.
当然,您可以使用SLIME C-u M-x slime而不是仅仅M-x slime让SLIME询问您要启动的Lisp可执行文件的名称,以及您已经填写的默认值.
还有一个slime-lisp-implementations我已经配置的变量:
(setq slime-lisp-implementations
`((clojure ,(swank-clojure-cmd) :init swank-clojure-init)
(sbcl ("sbcl") :coding-system utf-8-unix)))
Run Code Online (Sandbox Code Playgroud)
我不得不说我不记得这对我有什么影响了(如果它确实做了什么)......键入C-h v slime-lisp-implementations以大致了解它应该做什么.sbcl如果我想开始那么我似乎必须输入,由于我的SLIME中的Clojure与SBCL比率很高,这对我来说很好.
更新:
我刚刚重新发现M-- M-x slime(第一个键是负面参数的meta-minus),它提示其中一个Lisp实现的名称slime-lisp-implementations(带有tab完成),然后启动所需的Lisp.使用上面的示例配置,M-- M-x slime sbcl启动SBCL.
(我觉得这很有用,主要是因为它允许一个人配置更复杂的命令来启动Lisp - 例如(sbcl-options ("sbcl" "--an-option" "--another-option") ...),(sbcl-clbuild ("/path/to/clbuild" "lisp") ...)- 并按名称引用它们.)