如何使vim突出显示我们搜索的内容?

时间:2020-03-06 14:24:30  来源:igfitidea点击:

我在文件中搜索" nurple"。我发现了,太好了。但是现在,每次出现的" nurple"都用黄色的黑底黑字表示。永远。

永远,就是说,直到我搜索找不到我知道的东西(例如" asdhfalsdflajdflakjdf")后,它才会清除以前的搜索突出显示。

完成搜索后,我不能只是按下魔术键来杀死亮点吗?

解决方案

: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

有" hlsearch"和" nohlsearch"。 :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命令,但我从未真正使用过该功能。我发现此设置非常有用,因为我可以非常快速地打开和关闭搜索突出显示,并且一目了然可以轻松了解搜索结果的位置。