在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。
有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?
在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。
有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?
当前回答
几年前,我在vim.org上找到了这个答案:
将以下内容添加到.vimrc中:
"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>
因此,在搜索之后,只需在命令模式下再次单击return,突出显示就会消失。
其他回答
我个人喜欢将esc映射到命令:noh,如下所示:
地图<esc>:否<cr>
我最近写了一整篇关于Vim搜索的文章:如何在普通Vim上搜索,以及增强搜索功能的最佳插件。
nnoremap silent <cr> :noh<cr><cr>
这样我就可以在搜索后按回车键时,去掉命令行中显示的noh。
:就像开始输入一个新命令,Backspace将其清除并将焦点放回编辑器窗口。
永久禁用搜索突出显示
每当您使用/
:set nohlsearch
清除突出显示,直到下一次搜索
:noh
或:nohlsearch(清除,直到按下n或n)
按ESC键时清除高亮显示
nnoremap <esc> :noh<return><esc>
按另一个键或自定义地图时清除高亮显示
按\(反斜杠)时清除突出显示nnoremap\:noh<return>两次按下ESC时清除高亮显示nnoremap<esc><esc>:否<return>
为这两种行为定义映射,因为它们都很有用!
完全清除搜索缓冲区(例如,按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>
可以使用:noremap打开/关闭搜索结果,如下所示
:noremap<F3>:设置hls!hls<铬>