在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。

有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?


当前回答

为这两种行为定义映射,因为它们都很有用!

完全清除搜索缓冲区(例如,按n进行下一次匹配将不会继续搜索)保留搜索缓冲区,并切换突出显示搜索结果的开/关/开/。。。(例如,按n将继续搜索,但突出显示将基于切换的当前状态)

" use double-Esc to completely clear the search buffer
nnoremap <silent> <Esc><Esc> :let @/ = ""<CR>
" use space to retain the search buffer and toggle highlighting off/on
nnoremap <silent> <Space> :set hlsearch!<CR>

其他回答

如果您想快速启用/禁用高亮显示,可以将关键点映射到

" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>

只需将上面的代码段放在.vimrc文件中。

这是我显示和隐藏搜索突出显示的最方便的方法

有关更多信息,请查看文档http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

在我的.vimrc.local文件中重新映射到,快速而脏,但功能非常强大:

" Clear last search highlighting
map <Space> :noh<cr>

永久禁用搜索突出显示

每当您使用/

:set nohlsearch

清除突出显示,直到下一次搜索

:noh

或:nohlsearch(清除,直到按下n或n)


按ESC键时清除高亮显示

nnoremap <esc> :noh<return><esc>

按另一个键或自定义地图时清除高亮显示

按\(反斜杠)时清除突出显示nnoremap\:noh<return>两次按下ESC时清除高亮显示nnoremap<esc><esc>:否<return>

几年前,我在vim.org上找到了这个答案:

将以下内容添加到.vimrc中:

"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>

因此,在搜索之后,只需在命令模式下再次单击return,突出显示就会消失。

您也可以在.vimrc文件上添加映射,

nmap<C-N>:无效搜索

然后你可以按

Ctrl+N组合键

随时清除突出显示的文本