Next: , Up: 識別子を探す   [Contents][Index]


30.4.1.1 識別子の照合

xrefが可能にすることの中で一番重要なのは、指定した識別子の定義を探すことです。

M-.

識別子の最初の定義を探します(xref-find-definitions)。

C-M-. pattern RET

patternにマッチする名前の識別子を探します(xref-find-apropos)。

C-x 4 . RET

識別子の最初の定義を探して、他のウィンドウに表示します(xref-find-definitions-other-window)。

C-x 5 . RET

識別子の定義を探して、それを新しいフレームに表示します(xref-find-definitions-other-frame)。

M-x xref-find-definitions-at-mouse

マウスでクリックした識別子の最初の定義を探します。

M-,

前にM-.または同種のコマンドを呼び出した場所に戻ります(xref-go-back)。

C-M-,

前にM-.または同種のコマンドを呼び出した場所に戻ります(xref-go-forward)。

M-x xref-etags-mode

etagsバックエンドを使用するように、xrefを切り替えます。

M-. (xref-find-definitions)は、ポイント位置の識別子の定義を表示します。プレフィックス引数を与えた、またはポイント位置に識別子がない場合は、識別子の入力を求めます(常に識別子を尋ねるようにしたい場合は、xref-prompt-for-identifiertにカスタマイズする)。

M-.の引数に識別子を入力する際には、既知の識別子の名前を補完候補として通常のミニバッファーの補完コマンドを使用できます(補完を参照)。

バッファーを切り替えるほとんどのコマンドと同様に、xref-find-definitionsは新しいバッファーを他のウィンドウ、または新しいバッファーのために新しいフレームを作成する変種をもっています。前者はC-x 4 . (xref-find-definitions-other-window)、後者はC-x 5 . (xref-find-definitions-other-frame)です。

コマンドxref-find-definitions-at-mousexref-find-definitionsと同じように機能しますが、マウスイベントがあった箇所周辺の識別子を探します。このコマンドはたとえばC-M-mouse-1のようなマウスイベントにバインドされることを意図しています。

コマンドC-M-. (xref-find-apropos)はtags用のapropos (Apropos(適切な)を参照)のようなコマンドです。これは指定されたregexpにマッチする名前の選択済みtagsテーブル内の識別子リストを表示します。これはM-.と似ていますが、シンボル名(固定文字列)ではなく識別子regexpマッチングを行う点が異なります。デフォルトではM-.のように*xref*バッファーをポップアップしますが、変数tags-apropos-additional-actionsをカスタマイズして追加の出力を表示できます。詳細はこの変数のドキュメントを参照してください。

上記コマンドのいずれかがマッチする1つ以上の定義を見つけると、デフォルトではマッチ候補を表示する*xref*バッファーをポップアップして、そのバッファーのウィンドウを選択します(C-M-.は少なくともマッチを1つ見つけたら常に*xref*バッファーをポップアップする)。候補はそれぞれ通常はファイル名とそのファイル内のマッチした識別子として、そのバッファーに表示されます。そのバッファーでは表示する任意の候補を選択でき、*xref*バッファーで利用可能なコマンドで説明する追加のコマンドもあります。ただし変数xref-auto-jump-to-first-definitionの値がmoveなら、Emacsは*xref*バッファー内の最初の候補にポイントを移動するので、RETをタイプするだけでその候補の定義を表示できます。変数の値がtshowなら、最初の候補のウィンドウ自体に候補が自動的に表示されます。showでは*xfer*バッファーのウィンドウは選択されたままですが、tの場合には更に最初の候補の定義を表示中のウィンドウの選択も行います。デフォルト値のnilでは*xref*バッファーに候補を表示しますが、*xref*バッファーで候補を選択するまではどの候補も選択しないし候補定義も表示しません。

複数の候補を表示中に*xref*バッファーを表示しているウィンドウを切り替えた場合には、M-g M-n (next-error)とM-g M-p (previous-error)のコマンドを用いて候補から別の候補へと移動できます。Compilationモードを参照してください。

定義を表示した場所に戻るには、M-, (xref-go-back)を使用します。これは最後にM-.を呼び出したポイントにジャンプします。したがって、M-.により何らかの定義を見つけて確認したら、M-,で戻ることができます。変数xref-marker-ring-lengthで決定される深さ(デフォルトは16)まで、M-,を用いてステップを再トレースすることができます。M-,を使えばあなたが辿ってきた場所の履歴を逐一再トレースすることによって最初にM-.を呼び出した場所、あるいはそこに至るまでの任意の場所まで遡ることができます。

M-,で戻りすぎてしまったり、あるいは戻った場所から再検証したい場合には、再度履歴を進むためにC-M-, (xref-go-forward)を使うことができます。これはM-.と似ていますが、定義を調べたい識別子にいちいちポイントを移動する必要はありません。C-M-,を使えばあなたが遡ってきた場所の履歴を逐一再トレースすることによって履歴の最後の場所、あるいはそこに至るまでの任意の場所まで辿ることができます。

いくつかのメジャーモードは、特定の識別子の検索に失敗するかもしれないxrefサポート機能をインストールするかもしれません。たとえば、Emacs Lispモード(Emacs Lisp式の評価を参照)では、デフォルトではM-.はカレントEmacsセッションにロードされた、あるいは自動ロード(Autoload in The Emacs Lisp Reference Manualを参照)されるLispパッケージの関数と変数だけを検索します。M-.が何らかの識別子の検索に失敗する場合は、xrefetagsバックエンド(識別子のリファレンスを探すを参照)の使用を強制することができます。これを行うには、M-x xref-etags-modeを呼び出してXref Etagsマイナーモードをオンに切り替えて、再度M-.を呼び出します(これが機能するためには、ソースファイルのディレクトリーツリー内でtagテーブルを作成するために、必ずetagsを実行すること。タグテーブルの作成を参照されたい)。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.