我正在尝试在Emacs中设置一个主要模式,我想突出显示某些关键字。 使用此页面中的模板:http://ergoemacs.org/emacs/elisp_syntax_coloring.html我尝试过:
(setq testing-font-lock-keywords
`((font-lock-keyword-face)
))
(define-derived-mode testing-mode fundamental-mode
"testing file mode"
"Major mode for editing test files"
(setq font-lock-defaults '(testing-font-lock-keywords))
(setq mode-name "testing")
)
(provide 'testing-mode)
如果我在简单的测试文件上使用此模式,并键入"hello"
,则文本hello
会以不同的颜色标记。也就是说,双引号内的任何文本都会突出显示。为什么会这样?
我认为它与变量font-lock-keyword-face
有关。但如果我输入 C-h v 和font-lock-keyword-face
,它会说:
font-lock-keyword-face is a variable defined in `font-lock.el'.
Its value is font-lock-keyword-face
更新
似乎它与font-lock-keyword-face
无关,因为定义testing-font-lock-keywords
就像:
(setq test-keywords '("TEST"))
(setq testing-font-lock-keywords
`((,test-keywords)))
给出相同的行为。
答案 0 :(得分:2)
这是由变量`font-lock-syntactic-face-function'
引导的答案 1 :(得分:2)
通常,您希望第一阶段运行,但您可能需要更新语法表以匹配语言的语法。
此外,可以编写font-lock关键字,以便它们覆盖现有颜色,以便您可以在预先着色的注释和字符串中突出显示文本。请参阅OVERRIDE
中的font-lock-keywords
标记。