在缓冲区中评估不同于在粘液中评估?

时间:2014-07-17 04:27:21

标签: emacs lisp common-lisp slime

我正在使用emacs来学习如何在常见的lisp中编程,而且我遇到了一个令人困惑的问题。当我输入表达式

(defconstant +some-constant+ (make-hash-table))

我用

评估它
M-x eval-buffer

我收到错误

Symbol's function definition is void: defconstant

但如果我将其复制并粘贴到粘液复制品中,它就能完美地运行。当然,这会渲染大多数方便的键盘快捷键,用于评估程序中的lisp代码,而无需执行整个程序。每当我想测试一些东西时,我最终都会将我的缓冲区中的所有内容复制到粘液终端中。

这里发生了什么?

1 个答案:

答案 0 :(得分:7)

M-x eval-buffer会将缓冲区评估为emacs lisp,而不是Common Lisp。您可能需要C-c C-k,它将编译并加载文件。

通常,如果您看到与前缀为slime-的lisp相关命令,则可能是emacs-lisp工具。