我正在尝试编写一个emacs脚本,以便通过以下方式从命令行调用:
emacs --script script.el
当我尝试在所述脚本中包含cl-defstruct
或defstruct
时,我遇到了问题。例如,当我使用M-x eval-buffer
在emacs中运行它时,以下工作正常,但在作为脚本运行时失败:
(cl-defstruct test slot)
(setq myTest (make-test))
(setf (test-slot myTest) "hello")
(message (test-slot myTest))
上面应该只吐出消息"你好"但是当作为脚本运行时,我看到以下错误:
Loading 00debian-vars...
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...
Loading /etc/emacs/site-start.d/50python-docutils.el (source)...
Symbol's function definition is void: cl-defstruct
最后一行特别令人惊讶。有什么想法为什么cl-defstruct宏在这种情况下不会被识别?谢谢!
答案 0 :(得分:2)
尝试在脚本顶部添加(require 'cl-lib)
。