【问题标题】:Add functionality to emacs major mode向 emacs 主要模式添加功能
【发布时间】:2012-12-12 11:04:16
【问题描述】:

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

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

【问题讨论】:

  • 这真的取决于你在说什么。你想延迟加载代码吗?您是否希望仅在 C++ 模式下将命令绑定到键?

标签: emacs elisp


【解决方案1】:

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

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

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

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

【讨论】:

  • 这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多