在Emacs中自定义突出显示面:仅更改背景颜色

时间:2013-03-31 20:00:39

标签: emacs emacs-faces

有没有办法在Emacs中定义一个面部(例如高亮显示hl-line),这样它只会改变背景颜色(并让Emacs使用前景色,就像单词没有突出显示一样)。 / p>

更具体地说,我在tango-dark主题上尝试了以下内容

(custom-set-faces
 '(region ((t (:inherit nil :background "RoyalBlue4"))))
 '(highlight ((t (:inherit region :background "dark olive green"))))
 '(hl-line ((t (:inherit highlight)))))

并且,如下所示,区域突出显示确实尊重前景字体(即它只更改背景颜色):

enter image description here

当前行的突出显示不是:

enter image description here

为什么呢?如何使用hl-line获得相同的效果?

更新

这似乎是tango-dark主题(Emacs的内置主题)中的一个错误。该代码适用于默认主题(使用emacs -Q加载)。我在官方邮件列表上发布了这个。

2 个答案:

答案 0 :(得分:7)

前段时间我一直在努力,这似乎是色彩主题的一个错误。

然而,我已经想出了一个解决方法。这对我有用:

(load-theme 'tango-dark t)
(set-face-attribute 'highlight nil :foreground 'unspecified)

答案 1 :(得分:0)

我遇到了类似的问题:

(add-hook 'after-make-frame-functions
  (lambda (frame)
    (select-frame frame)
      (when (display-graphic-p frame)
       (custom-set-faces '(region ((t (:inherit nil :background "RoyalBlue4")))))
     )