アラのアラアラしい日記

こっそりかいてます

vimを使っている人はみんなctagsで幸せになれる権利を持っている

こんにちは!飲み過ぎてよくお腹を壊す人です。

結構長い間vimを使って開発をしているのですが、じょうよわなのでこの間初めて知りました。

開発中にどこから呼ばれてるのか分からないクラスやモジュールとかをgit grepしてたんですけど、
ctagsが超便利すぎて泣いて喜んだのでメモです。

まずインストールです。macの場合はctagsというコマンド自体は最初から入っていますが、
バージョンが古いのか、なんだか仕様が若干違うのでhomebrewでinstallし直すと良いと思います。

$ brew install ctags

設定ファイルは.ctagsに書きます。

ctagsのインストールが完了したら、"tags"というindexファイルを作成します。
ソースのあるディレクトリで以下のようなコマンドを入力します。

$ ctags -R

tagsというファイルが存在していたら成功です。
また、jsファイルはデフォルトだと

ctags: Warning: ignoring null tag in XXXX.js

っていうエラーが出るので、
gist.github.com
こちらのリンク内の内容を.ctagsに追加すると、jsファイルもtagsに含めてくれると思います。

あとはvimで開いているソースコードの中で、
調べたいワードにカーソルが乗っている状態でCtrl + ]をすると、
対象のファイルが出てきます。(カーソルも名前の一番先頭にあります。)

また、デフォルトの設定だと、今までの開いていたファイルの上に出てきちゃうので(:b#で戻れますが)これがなかなか厄介です。

なので以下の設定を入れると、新しいタブでファイルが出てきます。

map <C-]> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>

gist.github.com
こちらを参考にさせて頂きました。

これでより幸せな開発環境を手に入れることが出来ました。幸せです。

ドキュメントはこちらです。
CTAGS