关于搜索:你怎么让vim取消你搜索的内容?

How do you make vim unhighlight what you searched for?

我在一个文件中搜索"nuple"。我找到了,太好了。但是现在,每发生一次的"托儿所"都被渲染成病态的黄色黑色。永远。

永远,也就是说,除非我搜索我知道的东西,否则找不到,比如"asdhfalsdflajdflakjdf",这样它就会清除以前的搜索突出显示。

当我完成搜索后,难道我不能按一个魔法键来消除亮点吗?


:noh(nohighlight的缩写)将发挥作用。


把这个放进你的.vimrc里

1
2
" <Ctrl-l> redraws the screen and removes any search highlighting.
nnoremap <silent> <C-l> :nohl<CR><C-l>


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


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


那么我更喜欢这个:

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

为什么?因为它切换开关:如果高亮显示打开,则按F12将其关闭。反之亦然。Hth.


在您的EDOCX1[2]的末尾附加以下行,以防止全部突出显示:

1
set nohlsearch


1
2
3
4
5
6
7
8
            *: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 #下,我一直在打,它像当前页面一样突出显示当前页面上的所有单词。


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

1
<leader>c :nohl<CR>

现在,每当您的文档被突出显示的术语全部废弃时,您只需点击c(我将我的领导映射到逗号)。工作得很好。


我经常搜索,发现映射下划线键以删除搜索突出显示很有用:

1
nnoremap <silent> _ :nohl<CR>

我认为"vim clear last search highlighting"中的这个答案更好:

1
:let @/ =""


我的.vimrc中有这个:

1
nnoremap ; :set invhlsearch<CR>

这样,;将切换搜索突出显示。通常,;键重复最新的t/t/f/f命令,但我从未真正使用过该功能。我发现这个设置更有用,因为我可以很快地打开和关闭搜索突出显示,并且一眼就能轻松地了解搜索结果的位置。


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

如果要绑定f12以打开/关闭它,可以使用以下方法:

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

另外,如果你想有一个嘟嘟声,并确保突出显示将重新激活为下次你搜索的东西,你可以使用这个。

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

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

1
map e/ /sdfdskfxxxxy

在Esc模式下,我按e/