将 hl-line 最后放在 Emacs 背景堆栈中

Posted

技术标签:

【中文标题】将 hl-line 最后放在 Emacs 背景堆栈中【英文标题】:Put hl-line last in the stack of Emacs backgrounds 【发布时间】:2016-10-27 13:36:29 【问题描述】:

我们如何配置(或修复?)hl-line,使其背景突出显示在堆栈中最后(或第一个?)。

也就是说:如果 hl-line 突出显示某些单词已经具有背景颜色的一行,则 hl-line 不应使用自己的背景颜色覆盖该背景颜色。

它应该放在后面,让其他背景颜色可见。

【问题讨论】:

【参考方案1】:

如果你使用库hl-line+.el(另见highlight current line),那么你可以设置hl-line使用的覆盖的优先级。为了做你想做的事,你可以减少低于其他叠加层使用的数量。

(您甚至可以使用负数,但未记录 - 请参阅 Emacs bug #16192。您可以使用具有主要优先级和次要优先级的 cons 单元格 - 请参阅错误 #17234。)

但是,叠加突出显示始终优先于文本属性突出显示。因此,您不能使叠加显示在某些文本属性突出显示“下方”。

【讨论】:

然后我被卡住了,因为我的主要用例是 Org TODO 关键字,以及通过 Mx highlight-symbol-at-point 突出显示的单词,而且两者似乎都是文本属性......无论如何谢谢为您解答。 似乎一种解决方法可能是使用文本属性编写的 hl-line 包?甚至还不够? 符号高亮见this answer:只需在库highlight.el中使用命令hlt-highlight-symbol,而不是highlight-symbol-at-point 谢谢。但是,在我看来,真正的补丁是修复 hl-line。否则,必须替换或修补所有其他包,作为突出显示符号的东西。但是其他的需要修补:TODO 关键字的组织模式,每个带有背景的语言关键字的 prog 模式,等等。 欢迎您向 Emacs 提交错误报告,请求您想要的:M-x report-emacs-bug,作为增强请求或错误修复,如果您认为存在错误。如果您在错误报告中附上补丁,那就更好了。

以上是关于将 hl-line 最后放在 Emacs 背景堆栈中的主要内容,如果未能解决你的问题,请参考以下文章

Bazaar:如何将来自不同位置的文件放在一个存储库中?

Emacs shell 脚本 - 如何将初始选项放入脚本中?

如何将小图像放在 webview 背景的中心

把emacs.d/init.el 文件放在其他目录启动

如何将 emacs 设置为在 verilog 模式下使用 3 个空格而不是制表符?

80列后Emacs中的不同背景颜色?