在 Vim 中进行搜索后,所有出现的内容都会被高亮显示。如何关闭这个功能?我现在搜索一些无意义的内容以使其取消高亮显示。
是否有一种方法可以暂时禁用高亮显示,并在需要时重新启用它?
是否有一种方法可以暂时禁用高亮显示,并在需要时重新启用它?
:noh
或者完全关闭高亮:
set nohlsearch
或者,要切换它:
set hlsearch!
nnoremap <F3> :set hlsearch!<CR>
set nohlsearch
指令会禁用下一次搜索的高亮显示。而:noh
命令的行为非常不同:当你执行新的搜索或者进行与当前搜索相关的操作(例如按下 n
键跳转到下一个选项)时,高亮显示会自动重新启用。 - Skippy le Grand Gourounmap <silent> <C-L> <C-L>:nohlsearch<CR>:match<CR>:diffupdate<CR>
。 - joeytwiddlennoremap <nowait><silent> <C-C> :noh<CR>
的意思是在Vim编辑器中,按下Ctrl+C键将会禁用搜索高亮并清除当前搜索结果。 - VimNing<nowait><silent>
这个组合。谢谢! - kohane15:command C let @/=""
使用它可以输入 :C
来清除搜索字符串...非常快速,不会影响未来的搜索或高亮显示。 - Jason:he registers
)的部分。Vim内置了几个不同的寄存器来保存文本,有时是用于复制的数据,有时是用于最后一次搜索等。当你进行搜索时,Vim会将模式存储在“/”寄存器中,你可以使用@/
来引用它。你还可以使用@regname=value
来为寄存器分配值,其中regname
是寄存器名称。因此,@/=""
仅仅是将“/”寄存器设置为空字符串(但对于“/”寄存器,如果它包含一个空字符串,Vim将清除最后一次搜索)。 - Ben Davisnoremap <silent> <c-_> :let @/ = ""<CR>
- angrydust"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>
n
查找下一个出现的位置(它将再次被突出显示)。顺便说一下,在编写脚本时,我建议避免使用缩写形式,而应该写成:nohlsearch
。 - Tobias来自http://twitter.com/jonbho/status/2194406821
" Clear highlighting on escape in normal mode
nnoremap <esc> :noh<return><esc>
nnoremap <esc>^[ <esc>^[
由于Vim内部使用escape来表示特殊键,因此需要第二行映射到转义键。
我的原始解决方案(如下)很糟糕且浪费。现在我使用:noh
像Vim中的许多功能一样,正确的方式通常不容易发现。
--
(不要这样做)
搜索一个不太可能出现的字符序列(在主键上按键):
/;alskdjf;
这适用于vim和less,并且比@ShaunBouckaert更符合逻辑但难记/打的方案:“清除最后使用的搜索模式”:
:let @/ = ""
潜在的缺点是它会向您的搜索历史记录中添加垃圾信息。
:nohl
命令之前,大多数人会使用这个解决方案。一旦我了解了后者,就立即停止了进行这些搜索。 - Tobias/$4
。它不仅不太可能匹配任何东西,而且实际上完全不可能。 $
必须始终跟随一个换行符或者是文件末尾,而4既不是换行符也不是文件末尾。(之所以特别选用4,只是因为它在同一按键上,所以很容易快速输入) - semicolonnnoremap silent <cr> :noh<cr><cr>
那么,当我按下搜索后按下enter键时,就会消除命令行中显示的:noh
。
:类似于开始输入新命令,Backspace清除它并将焦点放回编辑器窗口。[a-z]
和类似字符上使用 shift。 - sjas:<Backspace>
,只需要在 nnoremap
后添加 <silent>
即可告诉 Vim 不显示命令区域的任何输出:nnoremap <silent> <cr> :noh<CR><CR>
。 - Soren Bjornstad以下是需要翻译的内容:
提出使用:noh
或者:nohlsearch
(例如Matt McMinn的回答)来暂时禁用搜索高亮显示,这是针对原始问题的正确答案。
我想贡献一个在Normal模式下我觉得很有用的映射:
nnoremap <C-L> :nohlsearch<CR><C-L>
noremap
而不是map
,否则映射将是递归的。
提示:我通常会将Caps Lock键映射为Ctrl键,以便更轻松地输入这些键组合;具体操作取决于您选择的操作系统/窗口管理器(这与本答案无关)。以下两个提示都包括将Caps Lock键映射为Ctrl和Esc的信息:
我在我的 .vimrc.local 文件中将其重新映射到<leader>,很快也很实用:
" Clear last search highlighting
map <Space> :noh<cr>
无论何时使用/进行搜索,匹配结果都不会被高亮显示。
:set nohlsearch
清除高亮直到下一次搜索。:noh
或者:nohlsearch
(清除直到按下n或N为止)
nnoremap <esc> :noh<return><esc>
按下\(反斜杠)可清除高亮
nnoremap \ :noh<return>
按两次ESC清除高亮显示
nnoremap <esc><esc> :noh<return>
nnoremap <esc> :noh<return><esc>
在 GUI Vim 中能够很好地解决问题,但是在终端中运行 Vim 时,会导致箭头键和其他 ESC 编码键出现问题。如果不在~/.vimrc
中加入if has('gui_running')
...end
的包装,请勿将其放入其中。 - jbyler