题
当我拆分 VIM 以显示几个文件或同一文件的不同部分时,有没有办法让我在一个窗口中进行一次搜索,在另一个窗口中进行不同的搜索?例如,我希望上面的窗口具有搜索模式 foo
和下面的窗口有搜索模式 bar
.
活动搜索模式会影响使用搜索突出显示时突出显示的内容,当我有 foo
在上面的窗口中突出显示,然后我切换到下面的窗口并搜索 bar
, , 和 foo
停止在上方窗口中突出显示。
编辑: 这个问题 似乎相关,但我不确定它是否完全重复。
解决方案
我用 这 用于突出显示多种搜索模式的脚本。
其他提示
如果您经常使用此功能,Canopus 的答案可能是最好的方法,但如果您想使用普通 vim 安装(或者更重要的是,不安装任何插件)来完成此操作,您可以简单地执行以下操作:
:call matchadd('Search', 'foo')
:call matchadd('Search', 'bar')
然后您可以清除所有匹配项
:call clearmatches()
还有一些方法可以让你对清除的内容更加挑剔(使用 :call matchdelete(...)
)通过将 matchadd 的输出保存到变量中。您可以阅读有关此内容的更多信息 :help matchadd()
和 :help matchdelete()
如果您没有使用太复杂的语法文件(特别是没有使用 Rainbow.vim 突出显示),您也可以这样做:
:syn keyword Search foo
:syn keyword Search bar
并清除它
:syn clear Search
我能想到的唯一可能的优点是,如果有一个 很多 您想要突出显示的匹配项 keyword
突出显示比 match
突出显示(因为后者使用正则表达式搜索)。你仍然可以做一个 syn keyword
如果你使用rainbow.vim,则匹配,但命令要复杂得多。
不隶属于 StackOverflow