当使用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)
如果你有一个很大的项目,我建议你使用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
Run Code Online (Sandbox Code Playgroud)
您可能想要查看: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
| 归档时间: |
|
| 查看次数: |
26496 次 |
| 最近记录: |