emacs 主要模式为正则表达式前面的行定义字体锁定

Posted

技术标签:

【中文标题】emacs 主要模式为正则表达式前面的行定义字体锁定【英文标题】:emacs major-mode define font-lock for line preceding regexp 【发布时间】:2013-10-21 17:09:34 【问题描述】:

我正在制作一个自定义的 emacs 主模式,但我对 lisp 完全不熟悉 - 所以我很挣扎。我正在尝试添加字体锁定,以便突出显示重复的“=”或“-”行,以及它上面的行(以便我可以将它们用作标题),即

This is a Colored Heading
=========================

this is a differently-colored sub-heading
-----------------------------------------

我已尝试通过以下方式进行设置:

(font-lock-add-keywords nil '(("\\(.*\n=\3,\\\)"
                             1 font-lock-warning-face prepend)))

但它不起作用。我认为这意味着:

'.*'任意字符 '\n' 后跟换行符 '=\3,\' 后跟 3 个或更多 '=' 字符

我哪里错了?

【问题讨论】:

【参考方案1】:

"\""\" 被视为转义序列,但它们不是。 您需要改用"\\""\\"

(font-lock-add-keywords nil '(("\\(.*\n=\\3,\\\\)"
                             1 font-lock-warning-face prepend)))

【讨论】:

以上是关于emacs 主要模式为正则表达式前面的行定义字体锁定的主要内容,如果未能解决你的问题,请参考以下文章

Emacs 字体锁定模式:提供自定义颜色而不是面

为啥我的带有 ^ 的 Emacs 正则表达式不能匹配行的开头?

设置 Emacs 默认字体 par-buffer/mode

grep正则表达式

grep

sed命令