我写了一个 elisp 函数和一些defvar
用于交互式添加 boost 单元测试宏的函数。由于它与 Boost 一起使用,因此只有在 c++ 模式下才需要它。目前它在我的初始化文件中,所以它总是在每种模式下加载。
我该如何做到这一点,以便此功能仅在 c++ 模式下可用,即好像我将它添加到主模式本身一样。
如果您希望仅在需要时加载您编写的代码,您可以将其放入自己的文件中(例如boost-unit-test.el
),然后.emacs
您可以添加:
(eval-after-load "cc-mode" '(require 'boost-unit-test))
请注意,这假设文件在您的文件中,load-path
并且(provide 'boost-unit-test)
是其中的一行。
现在,一旦这个文件被加载,那些变量和那些命令就会被全局定义,这就是 Emacs 的方式。这与您将代码留在.emacs
文件中没有什么不同。而且,无论哪种方式,它只会被加载/评估一次(除非你强制它加载多次 - 但你必须努力做到这一点)。