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

2609
Martin Tóth

Недавно я узнал, как позволить 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)

16
Что касается 10.6-> 10.5.8: я действительно понятия не имею, почему я написал 10.6, у меня всегда было 10.5.8 ... И когда я понял это, я изменил это ... Martin Tóth 13 лет назад 0
Странная история изменений: @Mehper начал редактировать в течение 5-минутного льготного периода, а затем (после того, как Мехпер * начал *, но до того, как он * сохранил *), Мартин изменил "10.6" на "10.5.8". Затем, изменение было отменено, когда Мехпер сохранил изменения в (тогда) более старом тексте - который для истории был все той же ревизией из-за льготного периода, следовательно, перечислял Мехпера как изменение версии. Если вас это беспокоит, рассмотрите возможность голосования за [После сохранения, предупредите, когда пост был сохранен кем-то другим] (http://meta.stackexchange.com/questions/20658/after-saving-alert-when-post -был-тем сохраняемых). Arjan 13 лет назад 1
+1 Я использовал --type-set после документации, но понятия не имел, что типы должны быть в новой строке Marcelo Diniz 11 лет назад 0

2 ответа на вопрос

18
Arjan

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

--type-set latte=.latte 

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

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

+1 Также написано: «Если вы хотите определить новый тип или полностью переопределить существующий тип, используйте **` --type-set` **. » Dennis Williamson 13 лет назад 1
Хммм ... Я читал этот раздел довольно много раз, но я не понимал / не понимал, что мне подходит! Спасибо! Martin Tóth 13 лет назад 0
-1
Martin Tóth

Хммм ... 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 )], ); 

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

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