我刚刚开始使用 emacs 模式。我制作了一个派生模式(from text-mode
),它针对不同的情况进行简单的颜色修改。例如,所有等号 ( =
) 行上方的文本变为洋红色,这是使用以下代码完成的:
(make-face 'heading-face1)
(set-face-foreground 'heading-face1 "brightmagenta")
(set-face-attribute 'heading-face1 nil :weight 'ultra-bold)
(setq font-lock-heading-face1 'heading-face1)
(font-lock-add-keywords nil '(("\\(.*\n=\\{5,\\}.*\\)"
1 font-lock-heading-face1 prepend)))
当我第一次打开包含此类文本的文件时,它会被适当地着色;但是如果我添加一个额外的=
,或者创建一个新行=============
,它们就会变成正常的文本颜色。
其他字体锁确实动态工作。例如,数字立即使用不同的颜色...
什么会导致模式与第一次打开文件时动态匹配不同?