你如何在Vim中搜索所有源代码?

Bri*_*unt 41 vim grep

当使用Vim,并给出一个充满代码的目录(例如〜/ trunk /)和许多子目录时,有没有办法在整个源代码中grep /搜索文本/正则表达式的实例?

目前我使用:

:lcd ~/trunk
:grep "pattern" *.py */*.py */*/*.py */*/*/*.py
Run Code Online (Sandbox Code Playgroud)

(显然我将此限制为Python文件,这是一个不同的问题,但值得注意的是,理想情况下我想将搜索限制为具有特定扩展名的文件.)

Myk*_*yev 41

:vimgrep "pattern" ~/trunk/**/*.py
:copen 20
Run Code Online (Sandbox Code Playgroud)

如果你有一个很大的项目,我建议你使用cscopevim插件.这是一个旨在处理大项目的项目:SourceCodeObedience

有一个简短的描述如何使用SourceCodeObedience grep文本.


sou*_*rge 7

我直接使用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
Run Code Online (Sandbox Code Playgroud)


Her*_*itz 6

您可能想要查看: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