You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim中如何逐个定位匹配模式并选择性批量替换?

在Vim中实现类似Sublime Ctrl+D的逐个选择修改功能

嘿,刚好能帮你解决这个问题!Vim里确实有一套操作可以实现像Sublime那样逐个选中目标匹配项,灵活选择修改/跳过,完全满足你精准修改指定<div>标签的需求。下面是具体步骤和技巧:

核心操作流程

  • 第一步:定位并高亮所有匹配项
    先输入查找命令定位你的目标模式,比如要找<div>:

    /<div>
    

    按回车后,第一个匹配项会被定位,同时所有匹配项默认会高亮(如果没高亮,输入:set hlsearch开启)。

  • 第二步:逐个选中匹配项
    用vgn命令选中当前光标所在的匹配项(v是进入可视化模式,gn是专门选中下一个匹配模式的文本)。

    • 如果当前项需要修改,直接进行操作;
    • 如果要跳过当前项,按n跳转到下一个匹配项,再按gn选中它即可。
      重复这个“跳转-选中”的过程,就能精准挑选出所有你需要修改的目标。
  • 第三步:修改选中的内容
    选中目标后,根据你的需求选择操作:

    • 直接替换:按c进入修改模式,输入你要替换的内容(比如<p>),按Esc完成修改;所有已选中的匹配项会被一次性替换!
    • 删除后插入:按d删除选中内容,再按i进入插入模式输入新内容。

针对你的示例场景的具体操作

以你提供的三个<div>标签为例,想要跳过第二个修改第一和第三个:

  1. 输入/<div>定位第一个匹配项;
  2. 按vgn选中第一个<div>;
  3. 按n跳转到第二个<div>,跳过不选中;
  4. 按n跳转到第三个<div>,再按gn选中它;
  5. 现在第一和第三个<div>都被选中了,按c输入<p>,按Esc,这两个标签就都替换完成了!

额外实用技巧

  • 取消高亮:如果高亮影响视线,输入:nohlsearch(可以缩写成:noh)快速取消;
  • 反向跳转:按N可以跳转到上一个匹配项;
  • 调整选择:如果选错了,按v退出可视化模式,重新选择即可。

这种方式比:%s///gc更灵活,因为它允许你非连续地选择匹配项,而正则替换的c选项只能逐个确认连续的匹配,完全符合你要的精准修改需求!

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:27:57