ctagsで定義元へジャンプする
Ctagsはクラスやメソッド,変数の定義元をキーワードとしてタグ付けし,定義元へジャンプすることを可能にします.
Exuberant CtagsはかつてVimと共に配布されていた派生版で,独立したプロジェクトとなりました.
現在はメンテナンスの続いているUniversal Ctagsがあります.
目次
インストール
Exuberant Ctagsをインストールする例です.
macOSではパッケージマネージャーを使って,
brew install ctags |
によりインストールできます.
使い方
タグファイルの生成
Vimで
:!ctags -R |
とすることにより,カレントディレクトリから再帰的にタグ付けし,タグファイルを生成します.
デフォルトのファイル名はtags
です.
定義元へのジャンプ
ジャンプ先に進むには,ノーマルモードでジャンプしたい単語の上にカーソルがある状態から
<C-]> |
と入力します.
<C-]>
によるジャンプでは現在のバッファが優先されます.
複数のクラスで使われている同名のメソッドなど候補が複数ある場合,次の候補先にジャンプしたいのであれば:tnext
(tn
)で進むことができます.
候補先を一覧したい場合は:tselect
(ts
)です.
最初のジャンプの時点で候補を選択したいときは,g<C-]>
によりジャンプ先を選択できます.
定義元からの帰還
ジャンプ前の位置に戻るには,
<C-t> |
とします.
タグの直接指定
キーワード上にカーソルがなくても任意の場所からジャンプを行うことができます.
タグ付けされたキーワードを直接入力するには,
:tag {keyword} |
とします.
キーワードの入力にはタブキーによる入力補完も行えます.
g<C-]>
に相当するキーワードの指定方法は
:tjump {keyword} |
です.
タグファイル名の変更
タグファイルの名前を変更したい場合は,オプションで-f タグファイル名
を加えます.
:!ctags -R -f タグファイル名 |
タグファイルの読み込み
もしデフォルトのファイル名から変更していた場合は,
:set tags=タグファイル名 |
とします.