【发布时间】:2014-02-21 14:26:51
【问题描述】:
根据 elisp 文档http://www.gnu.org/software/emacs/manual/html_node/elisp/Hooks-for-Loading.html,eval-after-load 应该评估表单,而不管是否加载了库(在本例中为“org”)。但是下面的表达式似乎对表单没有任何影响(消息“HELLO”)。
(eval-after-load "org" '(message "HELLO"))
预期的结果是找到打印在 *Message* 缓冲区上的字符串“HELLO”,这似乎没有发生。
【问题讨论】:
-
为我工作。也许你没有加载这条线。尝试从
*scratch*评估它。 -
感谢您的测试和报告。在 ubuntu 12.04 虚拟机中使用已编译的 emacs 版本 24.3.1。尝试从 scratch 进行评估,结果是一样的。关于如何调试此问题的任何想法。
-
C-j中的*scratch*是否会导致 nil 或“HELLO”? -
可能是自动加载。首次调用自动加载的 org 函数将需要 org.如果您不使用 org 函数,则不需要 org。
-
@Talespin_Kit,无论是否加载库,都不会执行表单。每当加载库时,都会评估表单。如果库已经加载,它将立即评估表单。对于 Magnar 的配置,org-setup.el 不是立即“需要”,而是在加载 org 时“需要”。