Интересная проблема!Я могу придумать несколько подходов:
- patch ack, чтобы разрешить фильтрацию по шаблонам имен файлов (лучше всего: ack нуждается в этой функции)
- изменить ack.vim, чтобы игнорировать определенные шаблоны имен файлов (неконечно, как вы это сделаете)
- фильтр вывода ack, с помощью скрипта / программы-оболочки (ломкий / раздражающий выход mck ack)
- фильтр входного списка файлов, переданного ack, с оболочкойскрипт / программа (выполнимо)
- патч для игнорирования файлов jQuery (хитрый, но работает)
У меня работает последний.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/;
Опять возвращаясь к моему первому предложению (исправьте ack, чтобы разрешить фильтрацию по шаблонам имен файлов)) Энди может взять для этого патч .
Кстати, вы, наверное, уже поняли это, но использование --type-add
не похоже на допустимый синтаксис для подтверждениякомандная строка:
--type-add=jquery=jquery*.js
ожидает только расширения файла.Надеюсь, это поможет!