【发布时间】:2013-03-21 23:06:00
【问题描述】:
有没有办法在 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)))))
并且如下所示,区域突出显示确实尊重前景字体(即它只改变背景颜色):
但当前行的突出显示不会:
为什么?以及如何使用hl-line 获得相同的效果?
更新:
这似乎是tango-dark 主题(Emacs 的内置主题)中的一个错误。该代码适用于默认主题(使用emacs -Q 加载)。我在官方错误邮件列表上发布了这个。
【问题讨论】:
-
在区域线上检查您的括号; =)在我修复了事情似乎按你想要的那样工作之后;顺便说一句,拥有像 paredit 这样的模式助手可以防止大多数这些问题!
-
更准确地说,删除
custom-set-faces和region行之后的右括号——之后,代码在 Emacs 23.1.1 上对我来说可以正常工作 -
感谢@Thomas,我更新了代码和 OP,但仍然没有得到想要的效果。嗯
-
谢谢@assem。我更新了代码和 OP,但仍然没有得到想要的效果。
-
这可能是您的主题的副作用吗?可以试试看用
-Q启动emacs时是否会出现同样的效果吗?
标签: emacs emacs-faces