Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2015年03月20日 [長年日記]

_ vim-tags でソースを自由に飛び回る(bundleされたgem含む)

今日、このプラグイン見つけて、コードリーディングがかなり捗るようになった。

ctagsというのが昔からあって、気づけば*1Rubyもサポートされていた。 それを利用して、ソースコード内を自由に飛び回れるようにしてくれるのが、vim-tags

いいところ

自動でソース解析

普通であれば、ソースに変更があればctagsコマンドでソースを解析する必要があるのだけれど、このvimプラグインはそれを勝手にやってくれる。

Bundler対応

Railsに限らず、gemや他のRubyプロジェクトでもデファクトスタンダードとして使われているbundler に対応している。 Gemfile内で定義されているgemのソースも勝手にctagsで解析してくれる。

あれ?ここのActiveRecordのコードってどうなってるんだろう?

と思ったらすぐにそこに飛べるので、コードリーディングにとても役立つ。

セットアップ

(必要であれば) ctags のインストール

Macであれば、

$ brew install ctags

でインストールできる。 しかし、これだけだとOS Xがデフォルトで持っているctagsと被ってしまうので注意。 あとで、vim-tagsが使うctagsコマンドを指定できるので、.vimrc で設定する。

vim-tags のインストール

自分の場合、Vundlrを使っているので、.vimrc

Plugin 'szw/vim-tags'

を追加して、:PluginInstall でインストール。

vimrc で設定

最低限やらないといけないのは、vim-tags にbrewでインストールしたctagsを使うように指定すること。.vimrc内で、

let g:vim_tags_ctags_binary='/usr/local/bin/ctags'

使い方

例えばRailsなら、Rails rootでvimを開いて、:TagGenerate を実行すると、それ以降はファイルを保存するたびに解析しなおしてくれる。

コードジャンプはCtrl + ] 、戻るのはいつもどおりでCtrl + o、飛んだ先に再度飛ぶにはCtrl + i 。 これだけでかなりスイスイ行ける。

参考

Tags: vim ctags

*1 昔はglobalが流行ると思ってたので、ctagsは全然調べてなかった。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly