Next: 識別子の照会, Previous: *xref*バッファーで利用可能なコマンド, Up: 識別子を探す [Contents][Index]
このセクションのコマンドは、識別子自身、またはファイル内の識別子にたいするリファレンスにたいして、様々な検索と置換を行ないます。
ポイント位置の識別子にたいする、すべてのリファレンスを探します。
*xref*バッファーに表示されているすべての識別子の名前にたいして、regexpをreplacementにインタラクティブに置換します。
選択されたタグテーブルのファイルから、regexpを検索します。
選択されたタグテーブルの各ファイルにたいして、query-replace-regexp
を実行します。
ポイントのカレント位置から、上記コマンドの最後の2つを再開します。
M-?は、ポイント位置の識別子にたいして、必要に応じて補完つきで識別子の入力を促しつつ、すべてのリファレンスを探します。カレントのバックエンド(識別子のリファレンスを探すを参照)に依存して、ポイント位置に有効な識別子を見つけた場合でも、このコマンドは識別子の入力を促すかもしれません。プレフィクス引数が指定された場合、このコマンドは常に識別子の入力を求めます(常に入力を求めるようにしたい場合はxref-prompt-for-identifier
をt
、ポイント位置に利用できる識別子がない場合のみ入力を求めるようにするにはnil
にカスタマイズすればよい)。それからこのコマンドは、その識別子にたいするすべてのリファレンスについて、ファイル名と識別子が参照されている行を、*xref*バッファーに表示します。このバッファーではXREFモードのコマンドが利用可能です。*xref*バッファーで利用可能なコマンドを参照してください。
変数xref-auto-jump-to-first-xref
の値がt
なら、xref-find-references
は最初の結果に自動的にジャンプして、それを表示するウィンドウを選択します。値がshow
ならまず結果を表示しますが、*xref*バッファーを表示するウィンドウが選択されたままになります。値がmove
なら*xref*バッファーで最初の結果を選択しますが表示はしません。デフォルト値のnil
では*xref*バッファーに結果を表示するだけで、結果を何も選択しません。
M-x xref-query-replace-in-resultsは通常のM-x query-replace-regexpのように、マッチさせる識別名にたいするregexpと置換文字列を読み取ります。それからそれらの識別子が参照されている、すべてのファイルのすべての場所で、マッチした識別子の名前が指定した置換文字列になるように置換を行ないます。これはリファクタリングの一環として、識別子のリネームを行なうときに役に立ちます。このコマンドはM-?によって生成された*xref*バッファーで呼び出す必要があります。
M-x
tags-searchは、ミニバッファーを使用してregexpを読み取り、選択されたタグテーブルのすべてのファイルから、1ファイルずつマッチを検索します。これは検索しているファイル名を表示するので、進行状況を確認することができます。マッチが見つかった場合、tags-search
はリターンします。このコマンドには利用可能なタグテーブル(tagsテーブルを参照してください)が必要です。
tags-search
で1つのマッチが見つかったら、おそらく残りのすべてについても検索したいと思うでしょう。M-x
fileloop-continueは、多くのマッチを探すためにtags-search
を再開します。これはカレントバッファーの残りの部分を検索して、その後タグテーブルの残りのファイルを検索します。
M-x
tags-query-replaceは、タグテーブルのすべてのファイルにたいして、1つのquery-replace-regexp
を実行します。これは、通常のM-x
query-replace-regexpと同様、検索するregexpと、それを置換する文字列を読み取ります。この検索はむしろM-x
tags-searchに似ていますが、入力へのマッチを繰り返し処理します。問い合わせ付き置換については、問い合わせつき置換を参照してください。
変数tags-case-fold-search
の値をカスタマイズすることにより、タグ検索コマンドの大文字小文字の扱いを制御できます。デフォルトには、case-fold-search
の値と同じ設定が使用されます(検索中のLaxマッチングを参照してください)。
1回のM-x tags-query-replaceの呼び出しで、タグテーブルのすべてのファイルを検索することが可能です。しかし、一時的に検索を抜けられると便利なときもあります。これは、問い合わせ付き置換として特別な意味をもたない入力イベントで行うことができます。つづけて問い合わせ付き置換を再開するには、M-x fileloop-continueとタイプします。このコマンドは、最後のタグ検索または置換コマンドを再開します。たとえばカレントファイルの残りをスキップするには、M-> M-x fileloop-continueとタイプします。
上記で説明したコマンドは、xref-find-definitions
系の検索より広範な検索を行うことに注意してください。xref-find-definitions
コマンドは、部分文字列または正規表現にマッチする識別子の定義だけを検索します。コマンドxref-find-references
、tags-search
、tags-query-replace
は、通常の検索および置換コマンドがカレントバッファーにたいして行うように、識別子またはregexpにたいするマッチを検索します。
xref-find-references
やtags-search
のかわりに、サブプロセスとしてgrep
を実行して、Emacsにマッチした行を1つずつ表示させることができます。Emacs下でのGrepによる検索を参照してください。