Vim清除上次搜索高亮显示

Vim清除上次搜索高亮显示

技术背景

在使用Vim进行文本编辑时,搜索功能是常用的操作之一。当我们使用/进行搜索后,匹配的内容会被高亮显示。然而,有时这些高亮显示会影响我们对文本的查看,因此需要清除这些高亮显示。

实现步骤

临时关闭高亮显示

  • 直到下次搜索前关闭:在命令模式下输入:noh:nohlsearch,可以临时关闭搜索高亮显示,直到下一次搜索。
    1
    :noh
  • 永久禁用搜索高亮:使用:set nohlsearch命令,此后使用/进行搜索时,匹配内容将不会被高亮显示。
    1
    :set nohlsearch
  • 切换高亮显示状态:使用set hlsearch!命令可以切换高亮显示的状态。还可以通过映射快捷键来方便操作,例如将<F3>键映射为切换高亮显示状态的快捷键。
    1
    2
    set hlsearch!
    nnoremap <F3> :set hlsearch!<CR>

清除上次使用的搜索模式

可以使用:let @/ = ""命令清除上次使用的搜索模式。

1
:let @/ = ""

配置快捷键清除高亮显示

  • 按回车键清除:在.vimrc文件中添加以下内容,按回车键即可清除高亮显示。
    1
    nnoremap <CR> :noh<CR><CR>
  • <Esc>键清除:在.vimrc文件中添加以下内容,按<Esc>键可以清除高亮显示。
    1
    nnoremap <esc> :noh<return><esc>
  • 按其他键或自定义映射清除:例如将反斜杠\键映射为清除高亮显示的快捷键。
    1
    nnoremap \ :noh<return>

使用插件清除高亮显示

  • vim-cool:安装vim-cool插件,它可以在移动光标时自动关闭高亮显示。不过该插件需要较新的Vim版本。
  • incsearch.vim:如果安装了incsearch.vim插件,可以通过设置let g:incsearch#auto_nohlsearch = 1来在搜索后自动清除高亮显示。
    1
    let g:incsearch#auto_nohlsearch = 1

核心代码

以下是一些常用的清除高亮显示的代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
" 临时关闭高亮显示,直到下次搜索
:noh

" 永久禁用搜索高亮
:set nohlsearch

" 切换高亮显示状态
set hlsearch!

" 清除上次使用的搜索模式
:let @/ = ""

" 按回车键清除高亮显示
nnoremap <CR> :noh<CR><CR>

" 按<Esc>键清除高亮显示
nnoremap <esc> :noh<return><esc>

" 按反斜杠\键清除高亮显示
nnoremap \ :noh<return>

" incsearch.vim插件设置搜索后自动清除高亮
let g:incsearch#auto_nohlsearch = 1

最佳实践

  • 建议将常用的清除高亮显示的快捷键配置到.vimrc文件中,这样可以在每次启动Vim时都能方便地使用。
  • 如果需要在移动光标时自动关闭高亮显示,可以安装vim-cool插件。
  • 对于经常使用搜索功能的用户,可以考虑使用incsearch.vim插件,并设置搜索后自动清除高亮。

常见问题

  • 配置快捷键后Vim启动进入替换模式:在配置nnoremap ...~/.vimrc时,可能会出现Vim启动进入替换模式的问题。可以检查配置是否正确,或者尝试使用其他映射方式。
  • 插件不兼容:如vim-cool插件需要较新的Vim版本,如果版本过低可能无法正常使用。可以升级Vim到最新版本来解决。

Vim清除上次搜索高亮显示
https://119291.xyz/posts/2025-05-15.vim-clear-last-search-highlighting/
作者
ww
发布于
2025年5月15日
许可协议