在font-lock-keywords中仅为关键字指定新的背景颜色

时间:2012-04-18 01:06:29

标签: emacs emacs-faces

我想强调一些具有特定背景颜色的代码部分,但我希望其余的代码突出显示仍然存在。即,关键字仍然应该通过font-lock作为关键字突出显示,只有它们的背景应该改变。

目前,我正在使用font-lock-add-keywords,其中正则表达式匹配我想要突出显示的内容,并且每个匹配前面都定义了如此定义的面:

(:background "#d1eaff")

但是当它添加这个面部时,它不会保留以前的属性,如前景色,而只使用具有此背景色的默认面。

有没有办法让它使用当前面孔,只用新面孔替换背景颜色?就像在现有面孔中添加新属性一样?

1 个答案:

答案 0 :(得分:2)

您要找的是overlays

以下代码段会在当前缓冲区中的字符1到3上添加面compilation-error

(overlay-put (make-overlay 1 4)
             'face 'compilation-error)

您可以使用正则表达式搜索的结果或用于确定叠加层边界的任何内容来代替数字。