有没有办法在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).我在官方错误邮件列表上发布了这个.
我前段时间对此挣扎,似乎是色彩主题的一个错误.
不过,我想出了一个解决方法.这对我有用:
(load-theme 'tango-dark t)
(set-face-attribute 'highlight nil :foreground 'unspecified)
Run Code Online (Sandbox Code Playgroud)