Конфликтующие флаги типов в ack
Я добавил пользовательский тип в мой.ackrc, и он делает то, что я хочу.
--type-set=test:match:/_test\b/
Это соответствует файлам модульного теста. Так как я не хочу видеть тестовые использования чаще, чем я, я также установил
--notest
Однако, когда я хочу искать тесты, я пытаюсь добавить --test
в командной строке, но я не получаю результатов. Я надеялся, что --test
переписал бы --notest
, но они объединяются, чтобы ничего не дать. Страница man подтверждает, что они ORed вместе.
Любые предложения для того, что я пытаюсь сделать?
1 ответ
Решение
Поскольку ack ведет себя как OR для всех выражений типа вместе, нет способа сделать это непосредственно в .ackrc
без изменения подтверждения.
Тем не менее, я был в состоянии написать ack-функцию, которая добавляет --notest
если --test
передается.
function ack {
test_flag='--notest'
for arg in "$*"; do
case "$arg" in
--test)
test_flag=''
;;
esac
done
command ack "$*" $testflag
}