Vim多文件搜索特定内容

reference: http://blog.chinaunix.net/uid-14770335-id-3025369.html

用VIM开发或浏览项目时,经常会用到多文件的模式搜索。一些场合,可以用cscope find t可以解决了。可是遇到复杂的模式,该命令就捉襟见肘了。这时候就得用vim自带的匹配利器---vimgrep。

    vimgrep有两种使用的方式:
    1)将匹配模式放到//之间:这样情况下,使用vim的正则模式来进行匹配
       命令格式: :vim[grep][!] /{pattern}/[g][j] {file}
例子:
       :vim /function demo/ *.c         在当前目录的.c文件中,搜索function demo
        :vim /function demo/ **/*.c     在任意目录的.c文件中,搜索function demo
        :vim /function demo/ **/*.{h,c}   在任意目录的.c和.h文件中,搜索function demo
        :vim /\cfunction demo/ **/*.c   使用\c,不区分大小写
        :vim /\Cfunction demo/ **/*.c    使用\C,区分大小写
        :vim /function demo/j *.c       只更新quickfix,不跳转到第一个搜索结果
        :vim /function demo/g *.c       一行中若有多个匹配,每个都要单独显示一行
    2)直接加匹配模式:这种情况下只能搜索ID,举个例子,就不详细说了
       :vimgrep Error *.c

    vimgrep可以跟split或vsplit结合使用,将结果显示到单独的窗口中:
        vsp | vimgrep demo *.c
    lvimgrep跟vimgrep功能上是一样的,但该命令更新提本地的窗口列表,而不是quickfix列表

若结果更新到quickfix:
    用cw查看,cn下一条,cp上一条,ccl关闭结果,colder上次搜索结果,cnewer下次搜索结果
若结果更新到本地的窗口列表:
    用lopen查看,lcl关闭,lnext下一条,lpre上一条,lolder上次搜索结果,lnewer下次搜索结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值