フラグを繰り返さずに、Ackで複数のディレクトリを無視することは可能ですか?
例えば私は次のことを知っていますworks(つまり、複数のフラグを設定します):
ack --ignore-dir=install --ignore-dir=php 'teststring'
ディレクトリをコンマで区切って、次のように拡張子でできることを望んでいました。
ack --ignore-file=ext:css,scss,orig 'teststring'
ただし、次のカンマ区切りの無視フラグは機能しません。
ack --ignore-dir=install,php 'textstring'
同等の省略形を使用することは可能ですか?--ignore-dirフラグを繰り返し入力する必要はありませんか?
実際には、grep
のインクルードパターンを指定する方法と似ています。
ack <term> --ignore-dir={dir_a,dir_b}
ただし、この形式は単一のディレクトリでは機能しません。そう
ack <term> --ignore-dir={log}
動作しないでしょう。
Ack 2を使用しているので、--ignore-dir=install
および--ignore-dir=php
は、プロジェクトのルートにある.ackrcファイルにあります。その後、そのツリーのすべてのack呼び出しはそれらのフラグを使用します。
したがって、単一のディレクトリの使用を無視するには
ack <term> --ignore-dir=dir_a
複数のディレクトリを無視するには
ack <term> --ignore-dir={dir_a,dir_b}
1つのアプローチは、-G
オプションで補完された--invert-file-match
オプションの正規表現を使用して、除外するディレクトリを選択することです。あなたの質問に基づいて、次のようなもの:
ack -a -G 'install|php' --invert-file-match 'textstring' .