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

Ame*_*ina 6 emacs emacs-faces

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

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

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

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

                     在此输入图像描述

但是当前行的突出显示不是:

                       在此输入图像描述

为什么?我怎样才能获得同样的效果hl-line

更新:

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

sha*_*rov 7

我前段时间对此挣扎,似乎是色彩主题的一个错误.

不过,我想出了一个解决方法.这对我有用:

(load-theme 'tango-dark t)
(set-face-attribute 'highlight nil :foreground 'unspecified)
Run Code Online (Sandbox Code Playgroud)