分类: 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表示
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