Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5519937
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类:

2012-02-15 20:55:01

原文地址:vim多文件搜索(一) 作者:qiujie1001

    用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下次搜索结果

阅读(641) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~