面白い問題!私はいくつかのアプローチを考えることができます:
- ファイル名パターンでフィルタリングできるようにackにパッチを適用します(最適:ackにはこの機能が必要です)
- 特定のファイル名パターンを無視するようにack.vimを変更します(これをどのように行うかわからない)
- ラッパースクリプト/プログラムを使用して、ackの出力をフィルタリングします(ackの出力を変更するのが難しい/煩わしい)
- ラッパースクリプト/プログラム(実行可能)を使用して、ackに指定された入力ファイルリストをフィルタリングします
- jQueryファイルを無視するようにackにパッチを適用します(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/;
繰り返しになりますが、私の最初の提案(ファイル名パターンでのフィルタリングを可能にするパッチack)に戻ると、Andyはこれにパッチを当てる可能性があります。
ちなみに、あなたはおそらくこれをすでに理解しているでしょうが、あなたの使用は--type-add
ackコマンドラインの有効な構文ではないようです:
--type-add=jquery=jquery*.js
それはファイル拡張子を期待しているだけです。お役に立てれば!