当使用搜索作为移动时,是否有可能不触发我的正常搜索突出显示?

当使用搜索作为移动时,是否有可能不触发我的正常搜索突出显示?

当我在 vim 中进行搜索时,我喜欢突出显示结果并使其非常明显,因此我在.vimrc.

" When highlighting search terms, make sure text is contrasting colors
:highlight Search guibg=yellow guifg=black

(这适用于 vim 的 GUI 版本,例如 MacVim 或 Gvim;对于命令行,您可以使用ctermbgctermfg。)

但有时我会使用命令进行搜索,例如c/foo- “从光标更改为下一个出现的foo”。

在这种情况下,我不希望foo突出显示所有出现的事件。

我可以关闭突出显示吗仅有的在将搜索用作命令的移动的情况下?

答案1

这些简单的映射似乎有帮助。

  • 常规搜索

    旋转突出显示在进行搜索之前:

    nnoremap / :set hls<CR>/
    
  • 动态搜索

    旋转突出显示离开在进行搜索之前:

    nnoremap v/ :set nohls<CR>v/
    nnoremap d/ :set nohls<CR>d/
    nnoremap y/ :set nohls<CR>y/
    nnoremap c/ :set nohls<CR>c/
    

请注意,您需要为设置类似的映射?

答案2

要永久禁用搜索突出显示:

:set nohlsearch
(or)
:set nohls

但您可能想保持突出显示。另一方面,如果想暂时摆脱突出显示,请输入:

:nohlsearch
(or)
:noh

它将停止突出显示当前搜索,直到您再次搜索。

尽管这对您来说不是完美的答案,但这是一个很好的解决方法,而且这也是我所使用的方法。

相关内容