添加emacs主要模式的功能

时间:2012-12-12 02:23:39

标签: emacs elisp

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

我该怎么做才能使这个功能只能在c ++模式下使用,就好像我把它添加到主模式本身一样。

1 个答案:

答案 0 :(得分:3)

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

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

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

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