搜索vimgrep和过滤文件

时间:2011-11-29 03:03:47

标签: vim

如何在目录结构中的文件中搜索文本,但忽略某些文件。

例如,我希望能够找到文本sometext,但不能找到与*.gz匹配的搜索文件

2 个答案:

答案 0 :(得分:2)

你可以这样做

vimgrep /sometext/g `find ~ \( -regextype posix-extended -regex '.*py' \) -not path ~/tmp`

有一种叫做反引号的表达式,它为vimgrep提供了参数:http://vimcasts.org/episodes/populating-the-arglist/

此处find命令作为反引号表达式传递,find可以从vigrep中排除路径。

实际搜索字词很长,但您不必全部输入。我通常只使用q:调出以前的ex命令,搜索上一个find命令并修改它以进行下一次搜索。

答案 1 :(得分:1)

我认为您不能使用内部vimgrep指定排除项。但是,您可以包含多个文件通配符,因此如果您可以通过这种方式指定所有您感兴趣的文件,则无需排除。例如:

vimgrep /sometext/ *.c *.h *.txt