Slime

Emacs + Slime 简直就是 Common Lisp 的绝佳编程环境,一个非常好用的 IDE 。当然,Emacs 和 Slime 都没有提供 Common Lisp 解释器以及编译器,所以还 需要另外一个搭档,Slime 目前支持的 Common Lisp 实现包括:CMUCL、SBCL、 OpenMCL、LispWorks、Allegro Common Lisp、CLISP 。通常选择 SBCL 就可以 了。

小技巧

快速查看定义

M-. 可以快速查看到某个 symbol 的定义,如果是在 Debian 系统上使用的 SBCL 的话,只需要

就可以直接在系统源文件里面跳转而获得系统内部的 symbol 的定义了,非常方 便。

临时的运行环境

有时候正在写一大段代码(例如一个 defun )的时候,突然对某一个函数的行为 不是很确定,想要尝试一下,但又不能直接把这一大段代码扔掉,先复制,待会 再粘贴回来,都总觉得麻烦。这个时候只需要 M-x slime-scratch 就可以打开 一个“草稿 buffer”,就像 Emacs 自己的 *scratch* buffer 一样,可以通过 C-j 来对表达式求值。非常方便。

查询 HyperSpec

在 Slime 里面也可以非常方便地查询 HyperSpec 。 C-c C-d h 可以在 HyperSpec 里面查询一个 symbol ,而 C-c C-d ~ 则可以查询一个 format 字符。 查询通常会连接到网上,也可以把 HyperSpec 下载到本地,并设置 common-lisp-hyperspec-root 变量为本地目录就可以直接在本地查询了,非常 快捷方便!

如果安装了 Emacs-w3m 的话,直接在 Emacs-w3m 里面打开 HyperSpec 就更方 便了:

直接在 Emacs 里面浏览的话,复制、粘贴之类的也要方便得多呢!