Next: , Previous: , Up: Tags   [Contents][Index]


28.3.6 タグテーブルの検索と置換

このセクションのコマンドは、選択されたタグテーブルにリストされたファイルを、1つずつvisitして検索します。これらのコマンドにたいして、タグテーブルは検索する一連のファイルを指定するためだけに使用されます。これらのコマンドは、タグテーブルのリストの最初のタグテーブルから、(もしあれば)カレントファイルを記述するものを走査して、そこからリストの最後まで進めて、その後リストの先頭からリストのすべてのタグテーブルをカバーするまで走査します。

M-x tags-search RET regexp RET

選択されたタグテーブルのファイルから、regexpを検索します。

M-x tags-query-replace RET regexp RET replacement RET

選択されたタグテーブルの各ファイルにたいして、query-replace-regexpを実行します。

M-,

ポイントのカレント位置から上記のコマンドの1つを再開します(tags-loop-continue)。

M-x tags-searchは、ミニバッファーを使用してregexpを読み取り、選択されたタグテーブルのすべてのファイルから、1ファイルずつマッチを検索します。これは検索しているファイル名を表示するので、進行状況を確認することができます。マッチが見つかった場合、tags-searchはリターンします。

1つのマッチが見つかったら、おそらく残りのすべてについても検索したいと思うでしょう。M-, (tags-loop-continue)とタイプすると、多くのマッチを探すためにtags-searchを再開します。これはカレントバッファーの残りの部分を検索して、その後タグテーブルの残りのファイルを検索します。

M-x tags-query-replaceは、タグテーブルのすべてのファイルにたいして、1つのquery-replace-regexpを実行します。これは、通常のM-x query-replace-regexpと同様、検索するregexpと、それを置換する文字列を読み取ります。この検索はむしろM-x tags-searchに似ていますが、入力へのマッチを繰り返し処理します。問い合わせ付き置換については、Query Replaceを参照してください。

変数tags-case-fold-searchの値をカスタマイズすることにより、タグ検索コマンドの大文字小文字の扱いを制御できます。デフォルトには、case-fold-searchの値と同じ設定が使用されます(Search Caseを参照してください)。

1回のM-x tags-query-replaceの呼び出しで、タグテーブルのすべてのファイルを検索することが可能です。しかし、一時的に検索を抜けられると便利なときもあります。これは、問い合わせ付き置換として特別な意味をもたない入力イベントで行うことができます。つづけて問い合わせ付き置換を再開するには、M-,とタイプします。このコマンドは、最後のタグ検索または置換コマンドを再開します。たとえばカレントファイルの残りをスキップするには、M-> M-,とタイプします。

このセクションのコマンドは、find-tag系の検索より広範な検索を行います。find-tagコマンドは、部分文字列または正規表現にマッチするタグ定義だけを検索します。コマンドtags-searchおよびtags-query-replaceは、通常の検索および置換コマンドがカレントバッファーにたいして行うように、すべてのマッチを検索します。

これらのコマンドは、(それらがすでにEmacsバッファーでvisitされていなければ)検索する必要があるファイルのために、一時的なバッファーを作成します。マッチが見つからないバッファーは、速やかにkillされます。そうでない場合は残されます。

tags-searchのかわりに、サブプロセスとしてgrepを実行して、Emacsにマッチした行を1つずつ表示させることができます。Grep Searchingを参照してください。