在“emacs”(最新版本)中设置“Slime”时如何告诉它加载swank更快?

时间:2013-02-25 08:10:51

标签: emacs lisp slime sbcl swank

史莱姆手册说: “加载Swank更快 对于SBCL,我们建议您使用套接字支持和POSIX创建自定义核心文件 包括绑定,因为这些模块花费最多的时间来加载。要创造这样的核心, 执行以下步骤:

shell$ sbcl
*(mapc ’require ’(sb-bsd-sockets sb-posix sb-introspect sb-cltl2 asdf))
 *(save-lisp-and-die "sbcl.core-for-slime")

之后,将这样的内容添加到'.emacs'中:

(setq slime-lisp-implementations
’((sbcl ("sbcl" "--core" "sbcl.core-for-slime"))))"

我知道如何在我的.emacs文件中添加内容但是我究竟要为下面的部分做些什么呢?我在哪里,确切地说,以及如何执行以下步骤....我在哪里输入它。 “执行以下步骤:

shell$ sbcl
* (mapc ’require ’(sb-bsd-sockets sb-posix sb-introspect sb-cltl2 asdf))
* (save-lisp-and-die "sbcl.core-for-slime")"

请具体......我是菜鸟

2 个答案:

答案 0 :(得分:0)

  

我知道如何在我的.emacs文件中添加内容,但我到底做了什么   下面的部分我在哪里,确切地说,以及如何执行这些步骤   下面....我在哪里输入它。 “执行以下步骤:

在shell中启动Lisp实现,并输入其REPL。虽然Slime是Emacs的Common Lisp(以及更多语言)环境,但实际的CL实现不包含在内或是Emacs的一部分。 (Emacs本身使用了一种类似但不同的方言,Emacs Lisp。)

因此,您必须单独安装SBCL,启动它,然后在其REPL中输入上述命令。

(mapc #'require '(sb-bsd-sockets sb-posix sb-introspect sb-cltl2 asdf))

请注意,您必须使用',而不是才能使用它。这将在您的Lisp图像中加载系统,并且:

(save-lisp-and-die "sbcl.core-for-slime")

会将该图像保存到文件sbcl.core-for-slime中。当您告诉SBCL使用该图像(也称为核心图像)时,您不必再次加载上述系统,因为它们已经是加载图像的一部分。

就是这样
(setq slime-lisp-implementations
      '((sbcl ("sbcl" "--core" "sbcl.core-for-slime"))))
.emacs中的

会告诉SLIME在启动SBCL时使用命令sbcl --core sbcl.core-for-slime

另请注意, Common Lisp 是该语言的名称,而 CLISP 只是一种实现,如SBCL。我会相应地重新提出你的问题。

答案 1 :(得分:0)

Shell是计算机的命令行界面。在Emacs中,您可以通过输入 Mx shell来获得shell(即按顺序按下这些键: Esc x 取值 ħ 电子 输入)。将出现一个新窗口,并在其中显示等待您输入的shell提示符。在提示符处输入sbcl以启动SBCL;然后,您可以输入lisp代码片段以创建新核心。

要使上述工作正常,您必须先安装SBCL(例如,按照www.sbcl.org的说明进行操作。)