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 。
これだけでかなりスイスイ行ける。
参考
*1 昔はglobalが流行ると思ってたので、ctagsは全然調べてなかった。