2

我刚刚开始定制 emacs。如果我想在 emacs 中启用某种模式(全局),我需要在 .emacs 文件中放入一些代码。对于视觉模式,代码将是 (global-visual-line-mode t)。但是相同的语法不适用于 show-paren-mode 之类的东西。那么有没有办法识别必须用于全局启用模式的语法?还是必须知道的东西?

4

3 回答 3

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 'custom' 包 ( M-x customize RET),它将.emacs为您在文件中维护许多设置。或者对于特定选项,从菜单栏中:

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

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

于 2012-09-28T00:52:28.860 回答
3

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

如果你真的关心 Elisp,遗憾的是有三种不同的约定。

  • 正如您所发现的,许多模式都有类似的东西(activate-mode)or (name-of-mode t)
  • 其他人有一个切换,其中一些使用可选的数字参数来不切换,但打开或关闭;(toggle-mode -1)无条件开启。
  • 该模式可能有一个与之关联的变量,因此您(setq mode-variable t)会知道并且该模式会知道自己激活。这是一个边缘案例。
于 2012-09-28T07:59:43.410 回答
2

我相信次要模式是否是全局的仅特定于该模式,因此要回答您的问题,您必须知道哪些是全局的,哪些是特定于缓冲区的。

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

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

于 2012-09-28T00:30:46.347 回答