在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。
有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?
在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。
有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?
当前回答
我最初的解决方案(下图)既肮脏又浪费。我现在使用:否
像Vim中的许多功能一样,正确的方法通常不容易发现。
--
(不要这样做)
搜索不太可能的字符序列(将主行上的键混合):
/;alskdjf;
这在vim和更少的情况下工作,并且比@ShaunBouckaert逻辑上更清晰的解决方案“清除上次使用的搜索模式”更容易记住/键入:
:let@/=“”
一个潜在的缺点是,它会将垃圾添加到您的搜索历史记录中。
其他回答
如果您想快速启用/禁用高亮显示,可以将关键点映射到
" 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
另外一个解决方案是结合两个顶级答案:
"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>
我认为将@ShaunBouckaert和2009年3月19日16:22的答案混合在一起是一个很好的折中方案:
" Reset highlighted search
nnoremap <CR> :let @/=""<CR><CR>
按Enter键,突出显示的文本不再突出显示,而搜索突出显示仍处于启用状态。
有两个“必须拥有”插件:
sense-Ctrl-l用于nohlsearch和重绘屏幕。未被察觉的-[哦,]哦,控制搜索。
为这两种行为定义映射,因为它们都很有用!
完全清除搜索缓冲区(例如,按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>