2

我目前正在使用两个插件,它们独立工作得很好,但它们会稍微相互干扰:

标记HiCursorWords

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

我将光标下的单词的突出显示设置为简单地在单词下划线(我尝试将其加粗,但这有点太微妙且太容易被忽视),而不改变它的颜色或任何东西。这本身就非常有效,因为所有单词都继续使用其语法突出显示的颜色。

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

鉴于这些插件使用,这是一种可能性matchadd()吗?是否只是简单地将这个功能添加到 Mark 插件中,以便我们可以多路复用高亮样式来满足同时使用3层样式的需要?最大的问题是,是否可以同时分层 3 种样式?

(我知道第二层是可能的,因为例如 HiCursorWords 可以在评论中给单词下划线,这会导致单词(我将我的评论设置为斜体)变为斜体并加下划线;例如,对于 Mark,评论中的标记单词变得突出显示(背景颜色改变,前景颜色改变,并保持斜体) - 问题是我们可以应用两者以导致显示评论词,背景/前景颜色改变,下划线,仍然是斜体,当我的光标是在上面并且它被标记了吗?)

编辑:它似乎matchadd()会简单地覆盖任何以前设置的样式matchadd()。因此,如果我可以让 HiCursorWords 插件检查单词是否被 Mark 突出显示,那么它可以设置特殊的第三种样式(将突出显示和下划线)。希望有办法。

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

4

1 回答 1

1

你是对的,没有高亮组的分层。您基本上可以从语法插件中突出显示matchadd(),以及当前的搜索模式。(有一个待定的补丁允许添加/删除属性的命令;您可以在vim_dev 邮件列表中:syntax找到讨论。)

由于HiCursorWords插件matchadd()Mark一样使用,您可以尝试我的替代SearchHighlighting 插件,它还提供光标下单词的突出显示,但使用默认的搜索突出显示。

说到搜索高亮和,您可以通过可选参数 tomatchadd()影响哪个在顶部(必须 > 0 才能在顶部)。{priority}matchadd()

于 2013-07-19T06:47:28.607 回答