Ответ 1
На самом деле это похоже на то, как вы укажете шаблоны include для grep
:
ack <term> --ignore-dir={dir_a,dir_b}
Однако этот формат не работает с одним каталогом. Так
ack <term> --ignore-dir={log}
не будет работать.
Можно ли игнорировать несколько каталогов в Ack, не повторяя флаг?
например. Я знаю следующие работы (т.е. Установка нескольких флагов):
ack --ignore-dir=install --ignore-dir=php 'teststring'
Я надеялся, что я могу разделить каталоги запятыми, как я могу сделать с расширениями следующим образом:
ack --ignore-file=ext:css,scss,orig 'teststring'
Однако следующий флаг игнорирования, разделенный запятой, не работает:
ack --ignore-dir=install,php 'textstring'
Можно ли использовать некоторый короткий эквивалент, поэтому мне не нужно многократно печатать флаг -ignore-dir?
На самом деле это похоже на то, как вы укажете шаблоны include для 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}
Одним из подходов может быть выбор этих каталогов для исключения с помощью регулярного выражения в опции -G
, дополненной опцией --invert-file-match
. Основываясь на вашем вопросе, примерно следующее:
ack -a -G 'install|php' --invert-file-match 'textstring' .