我尝试使用ack搜索foo
,但仅限于当前目录和所有子目录中的所有Gemfile
个文件。
快速搜索所有文件:ack foo
但这非常缓慢:ack -g Gemfile | ack -x foo
后一个命令需要25秒才能返回,这使得它基本上无法使用。
我做错了吗?如何仅在特定文件中搜索术语(我知道--ruby
和--php
但有时您想指定自己的模式)
更新
在Github项目中报告此问题后,添加了一个修补程序,可以加快-g
选项的大型代码库(https://github.com/petdance/ack2/issues/458)。
它应该包含在下一个版本中(> 2.12)。
答案 0 :(得分:1)
如果你正在运行ack 2.x,你可以轻松地为Gemfile创建一个文件类型。
ack --type-add=gemfile:is:Gemfile --gemfile foo
如果你做了很多,你把--type-add=gemfile:is:Gemfile
放在你的.ackrc然后你就可以说
ack --gemfile foo
作为ack作者/维护者,我很担心你的原始管道花了这么长时间,如果你有时间并且愿意将它作为一个问题提交,有人可能会看一看为什么会这样。 https://github.com/petdance/ack2/issues