如何在Emacs上自定义面,但仅当hl线处于活动状态时?

如何在Emacs上自定义面,但仅当hl线处于活动状态时?,emacs,elisp,emacs24,emacs-faces,Emacs,Elisp,Emacs24,Emacs Faces,我正在使用Emacs24,控制台(8种颜色)和Solarized主题 我想通过以下方式减少评论的干扰: (将面部前景的字体锁定注释分隔符面部设置为“黑色”) (将面部前景字体锁定注释面设置为“黑色”) 这样,注释的颜色将与我们在图片上看到的hl行面相同。但是,当移动到包含注释的行时,我希望它们被反转(从hl行,黑色背景,普通前景,而不是黑色),这样我仍然可以阅读它们。请查看附加链接中的代码:作为替代,您也可以临时隐藏注释。请参见库中的命令“隐藏/显示注释切换”。将它绑定到一个方便的键上——非

我正在使用Emacs24,控制台(8种颜色)和Solarized主题

我想通过以下方式减少评论的干扰:

(将面部前景的字体锁定注释分隔符面部设置为“黑色”)
(将面部前景字体锁定注释面设置为“黑色”)

这样,注释的颜色将与我们在图片上看到的
hl行
面相同。但是,当移动到包含注释的行时,我希望它们被反转(从
hl行
,黑色背景,普通前景,而不是黑色),这样我仍然可以阅读它们。

请查看附加链接中的代码:

作为替代,您也可以临时隐藏注释。请参见库中的命令“隐藏/显示注释切换”。将它绑定到一个方便的键上——非常简单。

在高亮显示当前行模式下有一个高亮显示当前行挂钩,也许你可以使用它。你能详细说明一下该做什么,我如何使用这个功能吗?我远远不能胜任这项技术,但我猜它需要一个条件,可以用来高亮显示线条,也可以不高亮显示线条。你可以在钩子中更改你的脸,
(添加钩子“高亮显示当前线条钩子(lambda()”(设置面前景“字体锁定注释分隔符面”)(设置面前景“字体锁定注释面”))
您可以在手册中阅读关于钩子的内容,我确实启用了
突出显示当前行
,但钩子似乎没有捕获任何东西。不过没有错。恐怕你不理解我的问题。我希望
hl行的背景是黑色的,评论的前景也是黑色的。但是,当注释位于
hl行时
我希望它们恢复为标准颜色(以便我可以阅读它们)。此外,我不能使用256色,我只能使用8色。请在.emacs文件中的附加链接的答案中尝试一些代码,如果您还有任何问题,请返回报告。最初的海报上说,前景的
nil
可以让其他颜色透过。如果您想改变hl行的行为,那么您需要查看它的源代码。您链接的内容对我没有帮助。提供的解决方案仅使用背景、前景和粗体。
nil
foreground允许其他定义显示出来。如果您的目标是禁止查看当前行中除
之外的所有其他字体定义,那么您可能需要大量修改hl-line的源代码。现在我明白您的意思了。我的目标是为仅在当前行上的注释抑制现有的前景规则。