Ответ 1
Интересная проблема! Я могу придумать несколько подходов:
- patch ack, чтобы разрешить фильтрацию с помощью шаблонов имен файлов (лучше всего: ack нуждается в этой функции).
- изменить ack.vim, чтобы игнорировать некоторые шаблоны имен файлов (не знаете, как вы это сделаете)
- выход фильтра ack с оберткой script/program (хрупкий/раздражающий вывод mck ack)
- список входных файлов фильтров, присвоенный ack, с помощью обертки script/program (выполнимый)
- patch ack игнорировать файлы jQuery (kludgy, но работает)
Я получил последнюю работу. Ack написан на Perl, поэтому его довольно легко читать и модифицировать. Найдите Ack.pm в своей системе. Я использую Ubuntu 11.10 и установил ack-grep, чтобы получить ack; мой Ack.pm находится в /usr/share/perl5/App/Ack.pm
. Если вы установили автономную версию ack, файл, который вы редактируете, просто называется "ack". Найдите подпрограмму is_searchable()
. Вот что я вижу:
sub is_searchable {
my $filename = shift;
# If these are updated, update the --help message
return if $filename =~ /[.]bak$/;
return if $filename =~ /~$/;
return if $filename =~ m{^#.*#$}o;
return if $filename =~ m{^core\.\d+$}o;
return if $filename =~ m{[._].*\.swp$}o;
return 1;
}
Добавьте еще одну строку сразу после выше return 1;
:
return if $filename =~ /^jquery/;
Опять же, вернемся к моему первому предложению (patch ack, чтобы разрешить фильтрацию с шаблонами имен файлов) Энди мог взять патч для этого.
Кстати, вы, наверное, уже поняли это, но использование --type-add
не является допустимым синтаксисом для командной строки ack:
--type-add=jquery=jquery*.js
он просто ожидает расширения файлов. Надеюсь, это поможет!