是否可以忽略Ack中的多个目录,而不重复标记?
例如,我知道以下工作(即设置多个标志):
ack --ignore-dir=install --ignore-dir=php 'teststring'
Run Code Online (Sandbox Code Playgroud)
我希望我可以用逗号分隔目录,就像我可以使用扩展程序,如下所示:
ack --ignore-file=ext:css,scss,orig 'teststring'
Run Code Online (Sandbox Code Playgroud)
但是,以下逗号分隔的忽略标志不起作用:
ack --ignore-dir=install,php 'textstring'
Run Code Online (Sandbox Code Playgroud)
是否可以使用一些短手等效,所以我不必重复输入--ignore-dir标志?
Man*_*hak 45
它实际上与您指定包含模式的方式类似grep:
ack <term> --ignore-dir={dir_a,dir_b}
但是,此格式不适用于单个目录.所以
ack <term> --ignore-dir={log}
不管用.
And*_*ter 17
由于您使用的ACK 2,你可以把--ignore-dir=install和--ignore-dir=php在你的项目的根.ackrc文件.然后,该树中的每个ack调用都将使用这些标志.
小智 12
所以要忽略单个目录的使用
ack <term> --ignore-dir=dir_a
Run Code Online (Sandbox Code Playgroud)
并忽略多个目录使用
ack <term> --ignore-dir={dir_a,dir_b}
Run Code Online (Sandbox Code Playgroud)
一种方法可能是使用选项中的正则表达式并-G用选项补充来选择要排除的目录--invert-file-match。根据您的问题,类似于以下内容:
ack -a -G 'install|php' --invert-file-match 'textstring' .
Run Code Online (Sandbox Code Playgroud)