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