繁体   English   中英

Vim中的单词下光标突出显示*和*多重突出显示

[英]Word-under-cursor highlighting *and* multi-highlighting in Vim

我目前正在使用两个插件,这些插件可以独立很好地工作,但是会互相干扰一些:

标记HiCursor单词

看来这两个插件都使用一种相似的方法,导致高亮样式相互干扰。

我将光标下方的单词的突出显示设置为仅在单词下划线(我尝试将其加粗,但这有点太微妙,太容易忽略了),而无需更改其颜色或任何内容。 当所有单词继续使用其语法突出显示中的颜色时,这本身就可以很好地发挥作用。

但是,一旦还启用了标记,则标记的单词的突出显示将被光标词突出显示覆盖。 由于高光的属性不相交,因此从理论上应该可以使高光保持不变,并且当光标位于高光上时,除了已有的其他样式外,它们还应该简单地获得下划线。应用。

考虑到这些插件使用matchadd() ,是否有可能? 仅仅是将这个功能添加到Mark插件中,以便我们可以复用突出显示样式以同时满足第3层样式的需要,这是简单的问题吗? 最大的问题是,是否甚至可能同时对3种样式进行分层?

(我知道可以在第二层进行分层,因为例如HiCursorWords可以在注释中对单词加下划线,这会导致该单词(我将我的注释设置为斜体)变为斜体和下划线;例如,使用Mark,注释中的标记单词变为突出显示(背景颜色已更改,前景色已更改并保持斜体)-问题是我们可以同时应用这两个选项,以使注释字词在背景/前景颜色更改,加下划线并仍然斜体时显示时,我的光标上面有标记吗?)

编辑:看来matchadd()会简单地覆盖matchadd()设置的任何先前样式。 因此,如果我可以通过HiCursorWords插件检查该单词是否被Mark突出显示,则可以设置一个特殊的第三种样式(将同时突出显示和加下划线)。 希望有办法。

此外,我注意到/搜索突出显示样式会覆盖所有其他matchadd突出显示。 因此,我突出显示的下划线将被其覆盖。 如果我能在这种情况下也能显示下划线,那也很好。

没错,高光组没有分层 基本上,语法插件, matchadd()和当前的搜索模式都具有突出显示的内容。 (有一个未决的补丁程序,可以使用:syntax命令添加/删除属性;您可以在vim_dev邮件列表中找到相关讨论。)

由于HiCursorWords插件使用了类似于Mark的 matchadd() ,因此您可以尝试使用我的替代SearchHighlighting插件 ,该插件还提供光标下单词的突出显示功能,但使用默认的搜索突出显示功能。

说到搜索突出显示和matchadd() ,您可以通过matchadd()的可选{priority}参数(排在matchadd()必须大于0)来影响排在顶部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM