1

我写了一个 elisp 函数和一些defvar用于交互式添加 boost 单元测试宏的函数。由于它与 Boost 一起使用,因此只有在 c++ 模式下才需要它。目前它在我的初始化文件中,所以它总是在每种模式下加载。

我该如何做到这一点,以便此功能仅在 c++ 模式下可用,即好像我将它添加到主模式本身一样。

4

1 回答 1

3

如果您希望仅在需要时加载您编写的代码,您可以将其放入自己的文件中(例如boost-unit-test.el),然后.emacs您可以添加:

(eval-after-load "cc-mode" '(require 'boost-unit-test))

请注意,这假设文件在您的文件中,load-path并且(provide 'boost-unit-test)是其中的一行。

现在,一旦这个文件被加载,那些变量和那些命令就会被全局定义,这就是 Emacs 的方式。这与您将代码留在.emacs文件中没有什么不同。而且,无论哪种方式,它只会被加载/评估一次(除非你强制它加载多次 - 但你必须努力做到这一点)。

于 2012-12-12T03:04:16.190 回答