带有:
(when window-system
(set-face-background 'hl-line "light yellow")
(global-hl-line-mode 1))
当前行以黄色背景突出显示,但是如果文本具有背景属性,它也会被覆盖(例如diff-mode,rainbow-mode)。
是否可以仅为没有适当属性的零件设置背景?
我开始进行实验的UPDATE,似乎点画与背景没有冲突:
(set-face-stipple 'hl-line '(4 4 "\x01\x00\x00\x00"))
(set-face-attribute 'hl-line nil :inherit nil)
但是不幸的是,点画会损坏文本外观。
1
您可能希望考虑的另一种可能性是,在每个hl-line命令循环的末尾放置删除功能,以便从当前行的开头到当前行的结尾(或到行的结尾)执行搜索。则可以从存在其他背景颜色的其他文本的任何位置删除当前视线和hl线覆盖面。您可能会搜索字体锁定放置的突出显示,尽管您可能还会将突出显示放置在其他覆盖上(例如,flyspell错误/重复项)。
—
法律列表
@lawlist我对它的实现感兴趣;您能否在下面添加完整的解决方案?
—
Kaushal Modi
@kaushalmodi-我知道如何针对特定的叠加层或原始文本执行此操作,但不适用于针对特定的文本属性/字体锁定突出显示。因为我需要研究如何测试后两种情况才能正确回答此问题,所以我选择发表评论。这是一个片段[从Drew的一个图书馆借来的],用于测试特定的叠加点:
—
律师名单
(when (memq NAME-OF-FACE (mapcar (function (lambda (ovr) (overlay-get ovr 'face))) (overlays-at (point)))) (remove-overlays BEGINNING-POINT ENDING-POINT 'face hl-line))