如何在 VIM 中禁用搜索模式语法高亮

如何在 VIM 中禁用搜索模式语法高亮

我 ssh 到一台服务器然后使用 sudo 获取 root 权限。在 shell 中我的光标闪烁成黄色块。当我用 vim 打开文件时如果文本和光标颜色相同整个单词都会被黄色遮挡。奇怪的是这只发生在文件中的某些单词上而不是全部。真的很奇怪。我还注意到我可以在 Vim 中打字但我输入的单词被黄色遮挡然后我就看不到我输入的单词了。有人遇到过这种情况吗如何解决?作为测试我从另一台服务器 ssh 到我遇到问题的服务器并看到了同样的问题所以这排除了本地环境中的问题。

更新 - 我现在可以确认它以某种方式与历史缓存相关联。如果我在 Vim 中打开一个文件,变成黄色块的单词只是我在上一个文件中搜索过的单词,或者在 VIM 中使用正则表达式搜索过的单词。这很奇怪。

我需要注释掉下面哪些行才能关闭上次使用的搜索模式的突出显示?

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif

filetype plugin on

if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

我认为它的“set hlsearch”是我需要注释掉的?

答案1

要永久禁用搜索突出显示,请添加

set nohlsearch

在你的 .vimrc 中

您还可以根据各种事件更改搜索突出显示

au InsertEnter * :setlocal nohlsearch
au InsertLeave * :setlocal hlsearch

或者快速切换搜索突出显示:

inoremap <silent><leader>l  <c-o>:set hlsearch! hlsearch?<CR>
noremap <silent><leader>l  :set hlsearch! hlsearch?<CR>

答案2

也许是因为某些插件、vimrc 设置或我不太熟悉的行为,VIM 会突出显示搜索结果。下次发生这种情况时,请尝试:nohl。这就是我让 VIM 在完成 后停止突出显示搜索结果的方法/blah,它会告诉我们这是否是 VIM 的突出显示行为。

相关内容