LoginSignup
15
20

More than 5 years have passed since last update.

vimで飛び回りたい(ctagsを使用して定義元にジャンプしたい)

Last updated at Posted at 2018-11-14

概要

クラスや関数、定数などの定義元にジャンプできるようにする
exuberant-ctagsではなくuniversal-ctagsを使用しています。設定ファイルの場所が異なりますので注意。

ctagsのインストールはこちらから

exuberant-ctagsじゃなくて、universal-ctagsをインストールしたい

ctagsの設定ファイル

~/.ctags.d/<名前任意>.ctagsに設定を書けば、読み込んでくれる
(exuberant-ctags を使用している場合は~/.ctagsに設定)

~/.ctags.d/config.ctags
--php-kinds=cdfin

上記は、「PHPのタグファイルを作成する際、クラス・定数・関数・インタフェース・ネームスペースのタグを作ってね」という設定

念のためコマンドたたいて確認してみる


ctags --list-kinds=php

指定したもの以外は[off]になっているのが分かります。

出力
c  classes
d  constant definitions
f  functions
i  interfaces
l  local variables [off]
n  namespaces
t  traits [off]
v  variables [off]
a  aliases [off]

タグファイル作成

プロジェクトのルートディレクトリで

ctags -R --languages=php

今回はPHPのファイルのみに対して作成するため --languages=php のオプションを指定。
tagsというファイルが作成される(ファイル名を指定したい場合は、-fオプションで指定可能)

.vimrcに設定を記載

タグファイルのパス指定

  • tagsではなく./tagsと指定すると、カレントディレクトリではなく開いているファイルのディレクトリからtagsファイルを探してくれる
  • ;$HOMEとすることで、ホームディレクトリまで遡ってtagsファイルを探してくれる
.vimrc
set tags=./tags;$HOME

候補が複数ある場合は一覧表示

.vimrc
nnoremap <C-]> g<C-]>
inoremap <C-]> <ESC>g<C-]>

レッツジャンプ

キー 動作
Ctrl + ] 宣言元へジャンプ
Ctrl + t (または Ctrl + o ) 戻る

便利です~~~~。

参考

CtagsでVimにタグジャンプ機能を追加する - Qiita
ctagsをちゃんと使う - Qiita

15
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
20