旧文重发,略作修改

前言

其实网上已经有很多类似的文章了,我也是按照上面的来做。在做的过程中会遇到几个很坑的地方,我自己也是折腾了好久才弄好。所以现在写出来希望能对大家有所帮助。

正文

下载和安装 Emacs

http://ftp.gnu.org/gnu/emacs/windows/emacs-24.3-bin-i386.zip

解压运行安装

下载 Sbcl

http://www.sbcl.org/platform-table.html

选 Windows 和你的架构。如果不知道的话就选 X86 就行了。

下载 Slime

https://github.com/slime/slime

如果你有 github 帐户就直接 git clone 吧。如果没有的话,点 download zip 然后解压。

安装Sbcl

双击安装包,改一下安装路径到你想安装的地方。但是这里有一个坑。

坑1:系统变量重启才会更新

这是因为在安装的过程中会给系统加一个 Sbcl 路径的变量。

所以一定要安装完后重启,不然就会提示

fatal error encountered in SBCL pid 10236(tid 9971200):
can’t find core file at XXXXX

安装成功的标志是运行 sbcl.exe 会出现类似这样的界面:

运行 sbcl

配置 Emacs

本来在 Linux 下配置 Emacs 是一件简单的事,但在 Windows 下就不那么容易了。因为 Windows 文件名命名机制这里有一个坑。

坑2:找不到 Emacs 的配置文件 .emacs

这是因为 Windows 不允许只有扩展名而没有文件名(在 Windows 看来是 .emacs 非法的,必须是 XXX.emacs 才是合法的。Linux 则是看成一个隐藏文件而已)

所以要做的第一步是生成 .emacs 配置文件

原理是通过修改选项之后点保存选项会生成 .emacs 配置文件

方法很简单。在 Emacs 目录下双击 runemacs.exe 打开 emacs

然后在菜单栏里点 Options—-Show/Hide—-tool-bar

之后点 Options—-Save options

这样就会在 C:\Users\你的用户名\AppData\Roaming 下生成一个 .emacs

打开 .emacs 输入以下内容以配置 Slime

1
2
3
4
5
6
(setq inferior-lisp-program "sbcl路径"); 设置优先使用哪种 Common Lisp 实现
(add-to-list 'load-path "slime路径"); 设置 Slime 路径
(require 'slime)
(slime-setup)
(require 'slime-autoloads)
(slime-setup '(slime-fancy)); 让 slime 变得更好看,比如把 sbcl 的*变成 CL-USER>

其中路径使用/或者//分隔

这其中有一个坑需要小心

坑3:sbcl 的路径一定要写到 sbcl.exe 不然会提示

Specified program for new process is a directory

这个真的是深坑啊。当时我花了不少时间才折腾好

原理就是 slime 调用的时候不会从你填的路径找到 sbcl.exe 而是需要给出 sbcl.exe 的完整路径

我的 .emacs 配置是这样的

Emacs 配置

打开 Emacs 按 M-x(window下就是Alt+x)输入 slime 之后会出现像这样的

运行 Slime

输入"Hello Common Lisp!" 一声长叹

Hello World

后记

一些常用的 Slime 快捷键

1
2
3
4
C-c C-k 编译当前文件 (也就是Ctrl+c后再Ctrl+k) 
C-c C-c 增量编译(这是我自己的理解)
C-c C-z 切换到Slime
C-c C-l 加载文件

当然以上快捷键都可以再 .emacs 里面改。

PS:我的配色是 solarized 字体是 Monaco

PSS:以上是 Vim 的配色。Emacs 的配色是自带的 dichromacy