我正在使用emacs来学习如何在常见的lisp中编程,而且我遇到了一个令人困惑的问题。当我输入表达式
(defconstant +some-constant+ (make-hash-table))
我用
评估它M-x eval-buffer
我收到错误
Symbol's function definition is void: defconstant
但如果我将其复制并粘贴到粘液复制品中,它就能完美地运行。当然,这会渲染大多数方便的键盘快捷键,用于评估程序中的lisp代码,而无需执行整个程序。每当我想测试一些东西时,我最终都会将我的缓冲区中的所有内容复制到粘液终端中。
这里发生了什么?
答案 0 :(得分:7)
M-x eval-buffer
会将缓冲区评估为emacs lisp,而不是Common Lisp。您可能需要C-c C-k
,它将编译并加载文件。
通常,如果您看到与前缀为slime-
的lisp相关命令,则可能是emacs-lisp工具。