8

我使用 Emacs 已经有很长时间了,并且我已经对其进行了很多定制。我什至写过简单的 ELisp 函数,现在我开始越来越多地使用宏。我不是一个知识渊博的 Emacs 用户,但我也不是一个完整的初学者。

我正在使用 nxhtml、mumamo、dired、ido、自定义键绑定以及我多年来添加的许多东西,但我不记得所有这些了;)

但是有一点我真的不明白:什么是“字体锁定”模式,我为什么要关心?

例如,我读过 nxhtml 和 nxml,如果我没记错的话,不要使用字体锁定。也许我不太了解那部分,但无论哪种方式:作为用户,它对我有什么改变?

或者以关于WhiteSpace的描述为例:

请注意,当 WhiteSpace 打开时,WhiteSpace 会保存 font-lock 状态,即 font-lock 是打开还是关闭。WhiteSpace 在关闭时会恢复字体锁定状态。因此,如果 WhiteSpace 开启而 font-lock 关闭,WhiteSpace 也会开启 font-lock 以高亮空白,但当 WhiteSpace 关闭时,font-lock 也会关闭。因此,如果您希望在 WhiteSpace 关闭后继续打开字体锁定,请在打开 WhiteSpace 之前打开 font-lock。

好的。我明白那个。但是,如果 font-lock 在之后继续,它会改变什么?

基本上我只是不“明白”,不管我读了多少关于这个主题的内容。

任何关于 Emacs 下的“font-lock”是什么以及为什么它与我有关的示例/解释都将受到欢迎!

4

2 回答 2

10

font-lock-mode== 丰富多彩的语法高亮。global-font-lock-mode为 Emacs 中的每种模式启用字体锁定。较旧的 Emacs 版本要求您手动启用它,较新的版本(我认为是 23+)默认启用此功能。我无法想象很多人会想要关闭此功能,因为它使某些类型的内容(如源代码)变得更加可读。每种使用字体锁定的模式都依赖于一组特定的——字体属性的组合,如大小、粗体、下划线、斜体和颜色。大多数模式使用的基本面是:

font-lock-builtin-face
font-lock-comment-face
font-lock-comment-delimiter-face
font-lock-constant-face
font-lock-doc-face
font-lock-doc-string-face
font-lock-function-name-face
font-lock-keyword-face
font-lock-negation-char-face
font-lock-preprocessor-face
font-lock-string-face
font-lock-type-face
font-lock-variable-name-face
font-lock-warning-face

如果您愿意(或使用不同的颜色主题),您可以轻松地覆盖它们的值。一些模式恰好也定义了额外的面。

于 2012-03-20T10:01:56.480 回答
4

它以所有不同的颜色显示您的代码(红色表示注释,绿色表示类名等)。如果它关闭,您将获得黑白代码。打开一些代码并执行几次 Mx font-lock-mode 来观察它的开关。

于 2012-03-19T18:00:05.707 回答