在所有目录中搜索

4

我无法找到在Vim中使用以下方式在所有目录中搜索的方法:

  • grep
  • ack
  • findstring
  • vimgrep

例如,在c:\和d:\(包括子目录)中的所有.txt文件中搜索“search-item”。

请问有人可以帮助我吗?


"ack.vim" 允许在 Vim 中进行搜索。例如::Ack foo . - Samy Dindane
2个回答

7

您可以像平常一样使用grep

:grep -R 'search-item' path1 path2

更多信息请参阅:

:h grep

这种方法对我来说比vimgrep更好用。vimgrep会锁定我的vim会话,而且似乎非常慢。 - Adamski

5

以下方法适用于我

:vimgrep /<search>/ {c:,d:}/**/*.txt

2
你可以为:vimgrep编写多个模式。还可以尝试使用vimgrep /<search>/ {c:,d:}/**/*.txt或者vimgrep /<search>/ [cd]:/**/*.txt - ZyX
1
@ZyX - 谢谢,我不知道。我已经将您的评论纳入我的答案中。 - Lieven Keersmaekers
我以为这是解决方案,但我注意到它会冻结vim。我必须使用ctrl-c来解冻我的vim。 - Reman
@Lieven,我找到了一部分。当我在路径中只放一个''时,我可以搜索子目录:c://.txt。但是,当我在//.txt或/**/.txt之前放置[cd]或{c:,d:}时,它不起作用。(我正在使用Windows,这可能是问题吗?) - Reman
@Lieven 我只知道 vimgrep /<search>/ c:/**/*.txt d:/**/*.txt 可以工作,而其他我的解决方案可能可以(这就是为什么我说“尝试”,而不是“你也可以使用”)。我不能再说什么了:此时我用来测试win32 vim的wine环境已被清除(而且是一周多前清除的)。 - ZyX
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接