1

默认情况下,Emacs 不会突出显示常量、结构成员、函数调用等(除非在定义中)。我在这里谈论的是 C 大调模式。

我想要一些基本的突出显示,只是基于文本匹配。例如,仅包含大写和下划线的单词 [A-Z_]+,例如 SOME_CONST,是一个常量(除非另有突出显示)。同样,我可以匹配 [a-zA-Z_][a-zA-Z0-9_] \s ( 作为函数调用; ->[a-zA-Z_][a-zA-Z0-9_]* 作为结构成员等

我该怎么做这个 emacs ?

4

1 回答 1

1

我认为您想要的 elisp 功能是 font-lock-add-keywords。我已将以下内容添加到我的 .emacs 中,并获得了我认为您想要的大写单词:

(font-lock-add-keywords 'c-mode '("\\<\[A-Z_\]\+\\>"))

您必须添加更多内容来处理整数常量。一些有关此的文档警告说,如果您对正则表达式不了解,它可能会大大减慢速度,并且您应该使用 regexp-opt 匹配多个关键字。

让我有点困惑的部分是 font-lock-add-keywords 的参数可以是正则表达式。

于 2012-09-04T23:10:13.850 回答