You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何配置Vim使增量搜索高亮颜色与已确认搜索匹配颜色不同

实现Vim增量搜索与确认搜索的高亮区分

没问题,这个需求在Vim里完全可以通过内置选项+自定义高亮组轻松实现,完美匹配你描述的场景:已确认的搜索结果用一种颜色,输入过程中的增量搜索匹配用另一种颜色。

核心原理

Vim自带两个专门处理搜索状态的高亮组:

  • Search:对应已确认的搜索结果(按下回车后的匹配项)
  • IncSearch:对应增量搜索过程中的临时匹配(输入/后还没按回车时的实时匹配)

同时需要开启两个基础选项激活对应功能:

  • incsearch:开启增量搜索(输入搜索内容时实时显示匹配)
  • hlsearch:开启搜索结果的持久高亮

具体配置步骤

把下面的内容添加到你的~/.vimrc(Neovim用户则是~/.config/nvim/init.vim)文件中:

  1. 先开启必要的功能选项
" 开启增量搜索(输入时实时高亮匹配)
set incsearch
" 开启搜索结果的持久高亮
set hlsearch
  1. 自定义两个高亮组的颜色(可根据个人喜好调整)
" 已确认的搜索结果高亮(示例:黄底黑字,同时适配终端和GUI)
highlight Search ctermbg=yellow ctermfg=black guibg=yellow guifg=black

" 增量搜索时的临时高亮(示例:蓝底白字,终端用颜色名,GUI用十六进制色值)
highlight IncSearch ctermbg=blue ctermfg=white guibg=#005fdf guifg=white

效果验证

按照你描述的场景测试:

  1. 正常模式下输入/foo<回车>,此时所有foo会以Search组的颜色高亮
  2. 再输入/bar(不按回车),此时实时匹配到的bar会以IncSearch组的颜色高亮,和已有的foo高亮完全区分开

小提示

  • 如果你想临时关闭当前的搜索高亮,可以输入:nohlsearch(或者简写:nohl
  • 颜色值可自由调整:终端下支持常见颜色名(red/green/blue等),GUI下支持十六进制色值(比如#ff0000代表红色)

内容的提问来源于stack exchange,提问作者user3133806

火山引擎 最新活动