• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

gvim同时搜索多个字符串

在GVim中,进行多字符串搜索可以通过多种方法实现,以下是几种常用的技巧和命令:

  1. 基本多字符串搜索

使用 | 分隔多个模式:

在搜索命令中用 | 表示逻辑“或”,例如:

/foo|bar

这会匹配包含 foo 或 bar 的行。需注意 | 需要用 \ 转义(或使用 \v 开启“very magic”模式简化语法)。

同时匹配多个字符串的行:

若需匹配同时包含 fred 和 joe 的行,可使用:

/.fred.joe

或更简洁的 /\vfred.joe|joe.fred。
2. 高级正则表达式组匹配

捕获组与非贪婪匹配:

使用 (...) 定义捕获组,结合 {-} 实现非贪婪匹配。例如,匹配多行注释:

/

其中 _ 包含换行符,{-} 表示尽可能少的重复。

零宽度断言:

如 \zs 和 \ze 标记匹配边界,仅高亮部分内容:

/<\zs[^>]*\ze>

匹配尖括号内的内容(不包含 < 和 >)。
3. 全局命令 :g 结合搜索

筛选包含任意关键词的行:

使用 :g 命令显示匹配多模式的行:

:g/fred|joe

或删除不匹配的行:

:v/fred|joe/d

:v 是 :g! 的简写,表示反向匹配。

跨文件搜索:

通过 :vimgrep 在多个文件中查找:

:vimgrep /pattern1|pattern2/ **/*.txt

结果可通过 :copen 查看。
4. 可视模式与寄存器搜索

快速搜索选中文本:

在可视模式下选中文本后,按 * 或 # 直接搜索当前选中的内容(需配置映射,如 vmap // y/")。

使用寄存器动态搜索:

将搜索模式存入寄存器(如 "a),再调用:

:let @a = 'foo|bar' | execute '/'.@a

适合复杂模式的复用。
5. 交互式确认替换
若需替换多个字符串且逐个确认,可使用:

:%s/foo|bar/new/gc

每次匹配时会提示确认(y/n/a/q/l)。
注意事项

转义特殊字符:如 *、/ 等需用 \ 转义(例如 /* 搜索星号)。

忽略大小写:添加 \c 或设置 :set ignorecase。

取消高亮::nohl 临时关闭高亮。

以上方法可根据需求组合使用,灵活应对多字符串搜索场景。

posted on 2025-12-04 22:19  SOC验证工程师  阅读(61)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3