Published: 2018-04-28

Slime多lisp启动

slime-multi-lisp-01.png

Slime 是一个基于emacs的common lisp的开发环境,而common lisp 的有许多实现,比如:SBCL, CMUCL, Clozure CL 等,有时候需要在slime里启动启动不同的lisp, slime提供了对于多lisp的设置,将不同的实现添加到 slime-lisp-implementations 里。具体语法和含义参考文档, 我的改法是这样的:

;; emacs的配置文件

(after-load 'slime
  (when (executable-find "sbcl")
    (add-to-list 'slime-lisp-implementations
                 '(sbcl ("sbcl") :coding-system utf-8-unix)))
  (when (executable-find "lisp")
    (add-to-list 'slime-lisp-implementations
                 '(cmucl ("lisp") :coding-system iso-latin-1-unix)))
  (when (executable-find "ccl")
    (add-to-list 'slime-lisp-implementations
                 '(ccl ("ccl") :coding-system utf-8-unix))))

这样当我系统里安装了sbcl、cmucl或者ccl的时候,就可以通过slime来选择启动不同lisp了。这样好处是将不同的lisp安装和slime的配置解耦。

具体不同lisp的安装可以参考各自文档不同平台的说明。

启动的时候,用 M-- M-x slime 来选择启动不同的lisp,如果不加前缀,会启动 slime-default-lisp 设置的lisp或者 slime-lisp-implementations 里第一个lisp。

Happy hacking! (Although sometimes, slime+emacs make me mad;)

Author: Nisen

Email: imnisen@163.com