Next: , Up: Find Identifiers   [Contents][Index]


28.3.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-,

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

M-x xref-etags-mode

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

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

指定された識別子の定義が1つだけの場合は、その定義にジャンプします。識別子に該当する定義が複数ある場合(たとえばオブジェクト指向言語や、同じな前の関数や変数がある場合)、*xref*バッファーに定義の候補と、その定義が見つかったファイルを表示します。候補の選択は、定義の候補でRETをタイプするかmouse-2をクリックして行い、これにより対応する定義を表示するバッファーがポップアップします。

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

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

コマンドC-M-. (xref-find-apropos)は、指定した正規表現にマッチする1つ以上の識別子を探します。これはM-.と同じですが、固定長文字列として評価されたシンボル名にたいするマッチではなく、regexpにマッチする識別子です。

上記コマンドにより複数の定義が見つかった場合は、候補となる定義を*xref*バッファーに表示します。このバッファーでは、Xref Commandsで説明されている、複数の特化されたコマンドが使用できます。

定義の検索を開始した場所に戻るには、M-, (xref-pop-marker-stack)を使用します。これは最後にM-.を呼び出したポイントにジャンプします。したがって、M-.により何らかの定義を見つけて確認したら、M-,で戻ることができます。M-,は変数xref-marker-ring-lengthにより決定される深さ(デフォルトは16)で、ステップを再トレースできます。

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