Добавление типа файла в ack навсегда

16

Недавно я узнал, как позволить ack поддерживать больше типов файлов (добавив следующее в .ackrc):

--type-add
latte=.latte

К сожалению, это приводит к появлению информационной строки по каждому поиску ack, который я использую, даже по 0 с результатами.

$ ack --latte dump
ack: --type-add: Type "latte" does not exist, creating with ".latte" ...

Есть ли способ сделать это более постоянным дополнением? (т.е. избавиться от этой информационной строки) Мне кажется, что это добавляет этот новый тип при каждом вызове ack. Это проблема с моей установкой акк?

Я на Mac OS X 10.5.8 с ack 1.92 (работает под Perl 5.10.1)

Мартин Тот
источник
Относительно 10.6-> 10.5.8: я действительно понятия не имею, почему я написал 10.6, у меня всегда было 10.5.8 ... И когда я понял это, я изменил это ...
Мартин Тот
1
Странная история изменений: @Mehper начал редактировать в течение 5-минутного льготного периода, а затем (после того, как Мехпер начал , но до того, как он сохранил ) Мартин изменил «10.6» на «10.5.8». Затем, изменение было отменено, когда Мехпер сохранил изменения в (тогда) более старом тексте - который для истории был все той же ревизией из-за льготного периода, следовательно, перечислял Мехпера как изменение версии. Если вас это беспокоит, подумайте о том, чтобы проголосовать за сохранение, предупредив, когда пост был сохранен кем-то другим .
Арджан
+1 Я использовал --type-set после документации, но понятия не имел, что типы должны быть в новой строке
Marcelo Diniz

Ответы:

18

Мне кажется, что документация утверждает, что вам нужно --type-setвместо:

--type-set
latte=.latte

Принимая во внимание, --type-addчто, акцент мой:

Файлы с данными EXTENSION (s) распознаются как ( существующие ) типа TYPE.

Арьян
источник
1
+1 Там также написано: «Если вы хотите определить новый тип или полностью переопределить существующий тип, используйте --type-set».
Приостановлено до дальнейшего уведомления.
Хммм ... Я читал этот раздел довольно много раз, но я не понимал / не понимал, что я удовлетворяю свои потребности! Благодарность!
Мартин Тот
-1

Хммм ... ackэто в основном скрипт на Perl ... который довольно легко редактировать:

%mappings = (
    actionscript => [qw( as mxml )],
    ada         => [qw( ada adb ads )],
...
    latte       => [qw( latte )],
...
    yaml        => [qw( yaml yml )],
    xml         => [qw( xml dtd xslt ent )],
);

Но все же, есть ли другое решение для этого?

Мартин Тот
источник
4
Если вы отредактируете сам ack-grep, вы потеряете преимущество последующих обновлений, потому что обновление перезапишет ваши изменения. Конфигурация может быть выполнена в .ackrc, который является превосходным решением.
Нильс Бом