有一种更方便的方法。而不是使用
:set nohlsearch
实际上会关闭hlsearch设置,请使用
:nohls
这只会关闭hlsearch,直到您再次搜索。从:help nohls
*'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
'hlsearch' 'hls' boolean (default off)
global
{not in Vi}
{not available when compiled without the
|+extra_search| feature}
...
When you get bored looking at the highlighted matches, you can turn it
off with |:nohlsearch|. This does **not change the option value**, as
soon as you use a search command, the highlighting comes back.
但是,此解决方案并不完美,因为您仍然必须:nohls
在每次搜索后都输入要执行的操作。您可以通过映射解决此问题,例如
nnoremap <esc><esc> :silent! nohls<cr>
但是,还有一个更好的解决方案!haya14busa / incsearch.vim。至少在我看来,这是必不可少的 vim插件。主要功能是,当您键入正则表达式时,所有搜索匹配项都会实时突出显示。例如:
但是,还提供了一个辅助功能,该选项可以在您开始/停止搜索时立即打开或关闭hlsearch。要启用此功能,您必须添加
set hlsearch
let g:incsearch#auto_nohlsearch = 1
map n <Plug>(incsearch-nohl-n)
map N <Plug>(incsearch-nohl-N)
map * <Plug>(incsearch-nohl-*)
map # <Plug>(incsearch-nohl-#)
map g* <Plug>(incsearch-nohl-g*)
map g# <Plug>(incsearch-nohl-g#)
给你.vimrc
。
如果还有其他n
映射,则必须将其关闭。例如,我曾经有
nnoremap n nzz
nnoremap N Nzz
这两个映射彼此不兼容!