Chinaunix首页 | 论坛 | 博客
  • 博客访问: 281836
  • 博文数量: 57
  • 博客积分: 1764
  • 博客等级: 上尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 18:14
文章分类

全部博文(57)

文章存档

2012年(24)

2011年(33)

分类: LINUX

2011-11-22 18:55:33

    vimgrep每隔一秒钟,会模拟显示正在打开的文件(其实没打开,只是用于显示进度)。不过,vimgrep的效率不太高,要是追求速度可以用:grep调用系统外部的grep来进行搜索。
    设置  :set grepprg=grep\ -nri\ --include=*.{c,h}  man grep查看option帮助
    使用  :grep demo . 在当前目录下所有子目录中后缀为h和c的文件中搜索demo,忽略大小写
   

    其实,不进行设置,直接带上参数使用也一样,例如:
    :grep --exinclude=*.txt demo * -r
    跟vimgrep一样,grep也有lgrep,不再重复介绍。

    顺带总结下VIM的正则匹配模式,大多数都可以在vimgrep的模式中使用:
1)/string/3会使在光标转到找到string字符串的行下面的第3行,同样可以使用/string/-2来使光标停留在包含string的行的前面2行;/string/b+2却可以使光标停留在string字符串的第二个字符的位置
2)特殊字符: .*[]^%/?~$这10个字符,要想输出literal meaing,用\进行转义
3)\e表示;\t表示;\r表示;\b表示;\n表示一个换行;\s匹配空白;\S表示非空白字符代替[^ ] (除之外);\_s匹配换行或空白;\_a表示匹配换行或者一个字母;\d也可以表示0到9的数字,这个选项可以代替[0-9];\D表示非数字代替[^0-9];\x表示十六进制数代替[0-9a- fA-F];\X表示非十六进制数代替[^0-9a-fA-F];\l表示小写字母代替[a-z];\L表示非小写字母代替[^a-z];\u表示大写字母代替[A-Z];\U表示非大写字母代替[^A-Z]
4)限定词首或者词尾:\<可以限定找到是以指定字符串开始的单词,\>则是限定必须是以指定字符串结尾的单词
5)行首和行尾:/^string查找以string开始的行,/string$则查找以string结束的行
6).可以匹配任何一个字符
7)*表示它前面的字符可以重复多次或者0次,/\(be\)*
8)\+来限定为重复至少一次到无数次
9)\{n,m}可以指定重复n到m次
10)以\|分割的列表,可以表示匹配列表中任何一项,如/one\|two表示查找one或者two
11)字符列表。使用[0-9]可以表示一个0到9范围的字符。比如/string[1-5]表示查找string1,string2,string3,string4,string5

参考资料:

http://hi.baidu.com/dhy012345/blog/item/c44e2fdf8eb690c38c10291c.html

阅读(1508) | 评论(0) | 转发(1) |
0

上一篇:vim多文件搜索(一)

下一篇:Snapshot

给主人留下些什么吧!~~