Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search VIM搜索多个关闭的文件_Search_Vim - Fatal编程技术网

Search VIM搜索多个关闭的文件

Search VIM搜索多个关闭的文件,search,vim,Search,Vim,我经常喜欢做的一件事是快速搜索我正在处理的目录,并找到对特定字符串的所有引用,特别是在调试来自其他人的代码时。VIM是否仍然无法执行此类搜索?有没有其他方法可以直接用普通终端来实现 ATM(因为我还在学习VIM)我在TextMate中进行搜索,并以这种方式找到字符串。VIM是一个编辑器,而不是一个真正的文件搜索器。然而,调用shell并运行“grep”非常简单。假设您在Unix ish环境(TextMate-MacOs?)中处于命令模式,点击ctrl-z,您将看到shell提示,然后执行以下操作

我经常喜欢做的一件事是快速搜索我正在处理的目录,并找到对特定字符串的所有引用,特别是在调试来自其他人的代码时。VIM是否仍然无法执行此类搜索?有没有其他方法可以直接用普通终端来实现


ATM(因为我还在学习VIM)我在TextMate中进行搜索,并以这种方式找到字符串。

VIM是一个编辑器,而不是一个真正的文件搜索器。然而,调用shell并运行“grep”非常简单。假设您在Unix ish环境(TextMate-MacOs?)中处于命令模式,点击ctrl-z,您将看到shell提示,然后执行以下操作

grep somestring *.c
您将在任何C源文件中获得“somestring”的所有匹配项


完成grepping后,只需执行一个
fg
(前台)命令,然后返回到VIM。

您可以使用VIM命令。这将搜索指定文件中的模式,并将结果放在窗口中,然后可以使用该窗口跳转到特定匹配。例如,在当前目录中的每个
.php
文件中递归搜索
foo

:vimgrep "foo" **/*.php

另一个选项是实际调用程序的命令(或设置为
grepprg
的任何内容)。它还将结果放在窗口中以便于导航。但是,这要求您的系统上有
grep

vimgrep
可以工作,但是如果源代码恰好在Git中,那么您可以使用tpope的优秀插件,该插件公开了
:Ggrep
,它挂起Git grep以获得更大的灵活性


如果是您正在寻找的特定实体(函数、变量等),那么与
ctags
的集成可能也会引起您的兴趣。

听起来您可能想看看vim标签搜索功能与ctags的结合。ctags是一个实用工具,可用于为源代码(完整的项目树,而不仅仅是目录)生成各种语言对象的索引(标记文件)。在vim中,标记是一种可以跳转到或搜索的标识符

参见vim文档:

     :help tagsrch
或:


我刚刚找到了这个可以追溯到2007年的插件?是否有更新的或足够稳定的产品可以使用?请看以下非常类似的问题:“,”,“。好主意,我喜欢你的建议,而且效果很好。如果我能做grep somestring**就更好了它返回文件名旁边的所有实例。很漂亮,正是我要找的。