当使用Vim,并给出一个充满代码的目录(例如〜/ trunk /)和许多子目录时,有没有办法在整个源代码中grep /搜索文本/正则表达式的实例?
目前我使用:
:lcd ~/trunk :grep "pattern" *.py */*.py */*/*.py */*/*/*.py
(显然我将此限制为Python文件,这是一个不同的问题,但值得注意的是,理想情况下我想将搜索限制为具有特定扩展名的文件.)
:vimgrep "pattern" ~/trunk/**/*.py :copen 20
如果你有一个很大的项目,我建议你使用cscope和vim插件.这是一个旨在处理大项目的项目:SourceCodeObedience
有一个简短的描述如何使用SourceCodeObedience grep文本.
我直接使用grep.
grep -IirlZ "pattern" .|xargs -0 vim -I: ignore binary -i: ignore case -r: recursive -l: print file name only -Z: print \0 after each file name
您可能想要查看:vimgrep
并:grep
在vim文档中. :vimgrep
使用vim自己的模式搜索功能,并将所有文件读入vim缓冲区. :grep
默认情况下,链接到grep
系统上的外部功能,但您可以通过设置grepprg
选项来更改行为 .这是在线文档的链接:
http://vimdoc.sourceforge.net/htmldoc/quickfix.html#grep
关于它的更多信息以及Vim Tips Wiki中"在Vim中查找文件"提示中的其他一些选项:
http://vim.wikia.com/wiki/Find_in_files_within_Vim