在emacs中启用模式

时间:2012-09-28 00:11:20

标签: emacs elisp

我刚刚开始自定义emacs。如果我想在emacs中启用某些模式(全局),我需要在.emacs文件中放入一些代码。 对于可视模式,代码将是(全局 - 可视 - 线 - 模式t)。但是相同的语法不适用于show-paren-mode之类的东西。 那么有没有办法认识到语法必须用于全局启用模式?或者它是必须知道的东西?

3 个答案:

答案 0 :(得分:4)

使用Emacs帮助系统:

M-x describe-function RET show-paren-mode RET

...或使用菜单栏中的“帮助”菜单:

Help => Describe => Describe Function... show-paren-mode RET

,,,或键盘绑定:

C-h f describe-function RET show-paren-mode RET

最后,请考虑使用Emacs的“自定义”包(M-x customize RET),它会在您的.emacs文件中保留许多设置。或者从菜单栏中选择特定选项:

Options => Customize Emacs => Specific Option...

此外,在输入迷你缓冲区时,输入零个或多个字符后跟TAB将提供完成选项。

答案 1 :(得分:3)

通常有用的答案是使用customize。他们你不必知道确切的语法(甚至根本不知道任何Elisp);只需勾选复选框并启用所有会话。

如果你真的关心Elisp,那么遗憾的是有三种不同的惯例。

  • 正如您所发现的,许多模式都有(activate-mode)(name-of-mode t)
  • 其他人有一个切换,其中一些使用可选的数字参数来切换,但打开或关闭; (toggle-mode -1)无条件开启。
  • 模式可能有一个与之关联的变量,因此您可以(setq mode-variable t)并且模式会知道激活自身。这是一个边缘案例。

答案 2 :(得分:2)

我认为次要模式是否全局只是特定于该模式,所以要回答你的问题,你必须知道哪些是全局的,哪些是特定于缓冲区的。

我不确定如何编写代码来执行此操作(我对Emacs Lisp有点新)但是当您使用您选择的特定主要模式时,您可以编写一个钩子以启用次要模式。查看这个的Emacs信息页面,一切都在那里。

根据我的理解,非全局的次要模式是缓冲区特定的,因为它们可能不方便(如编写代码时的flyspell模式:D)