如何使Vim不突出显示所搜索的内容?

我在一个文件中搜索“nurple”。我找到了,太好了。但现在,“nurple”的每一次出现都被渲染成黄上黑的病态。直到永远。

永远,也就是说,直到我搜索一些我知道不会找到的东西,比如“asdhfalsdflajdflakjdf”,这样它就会清除之前的搜索突出显示。

当我搜索完的时候,我就不能按一个神奇的键把高光部分去掉吗?

125580 次浏览

:noh (nohighlight的缩写)将暂时清除搜索突出显示。下一个搜索仍然会突出显示。

把这个放进你的。vimrc

" <Ctrl-l> redraws the screen and removes any search highlighting.
nnoremap <silent> <C-l> :nohl<CR><C-l>
*:noh* *:nohlsearch*
:noh[lsearch]       Stop the highlighting for the 'hlsearch' option.  It
is automatically turned back on when using a search
command, or setting the 'hlsearch' option.
This command doesn't work in an autocommand, because
the highlighting state is saved and restored when
executing autocommands |autocmd-searchpat|.
Same thing for when invoking a user function.

我发现它就在:help #下,我一直在击中它,它突出显示当前页面上的所有单词,就像当前页面一样。

将以下行附加到.vimrc的末尾,以防止完全突出显示:

set nohlsearch

hlsearchnohlsearch:help hlsearch将提供更多信息。

如果你想绑定F12来打开/关闭它,你可以使用这个:

map     <F12>   :nohlsearch<CR>
imap    <F12>   <ESC>:nohlsearch<CR>i
vmap    <F12>   <ESC>:nohlsearch<CR>gv

对我来说,/lkjasdf总是比:noh快。

那我更喜欢这个:

map  <F12> :set hls!<CR>
imap <F12> <ESC>:set hls!<CR>a
vmap <F12> <ESC>:set hls!<CR>gv

,为什么?因为它切换开关:如果高亮是打开的,那么按F12将关闭它。反之亦然。HTH。

我经常搜索,我发现映射下划线键来删除搜索高亮显示很有用:

nnoremap <silent> _ :nohl<CR>

我在我的。vimrc中有这个:

nnoremap ; :set invhlsearch<CR>

这样,将切换搜索高亮显示。通常,键重复最新的t/ t/ f/ f命令,但我从未真正使用过该功能。我发现这个设置非常有用,因为我可以非常快速地打开和关闭搜索高亮显示,并且可以轻松地了解我的搜索结果在哪里,一目了然。

我认为最好的答案是有一个领导捷径:

<leader>c :nohl<CR>

现在,当你的文档被高亮显示的术语弄得乱七八糟时,你只需点击 + C(我将我的前导映射为一个逗号)。它工作得很完美。

" Make double-<Esc> clear search highlights
nnoremap <silent> <Esc><Esc> <Esc>:nohlsearch<CR><Esc>

我认为“Vim清除上次搜索高亮显示”中的这个答案更好:

:let @/ = ""

我将以下映射添加到我的~/.vimrc

map e/ /sdfdskfxxxxy

在ESC模式下,我按e/

此外,如果你想有一个工具,并确保高亮将被重新激活,下次你搜索一些东西,你可以使用这个

nmap <F12> :set hls!<CR>
nnoremap / :set hls<CR>/