vim-tagsで快適Rubyコードリーディング

ctagsでtagsというファイルを生成すると、vimでカーソル位置にあるクラスやメソッドの定義に簡単にジャンプすることができます。
自分で定義したものだけでなく、Gemfile.lockにある依存ライブラリにもジャンプでき、非常に便利です。

本記事ではvim-tags(ctags)を使ったことがないMacユーザー向けに使い方をまとめます。

ctagsを新しくする

Macに標準で入っている古いctagsを使ってるとvim-tagsがうまく動かないので新しいやつをいれます。

brew install ctags

vim-tagsの設定

最初にタグを手動で生成したあとは、ファイルを保存するたびに自動でtagsを生成してくれるプラグインです。
brewでいれたctagsを使うように、以下の設定を加えます。

NeoBundle 'szw/vim-tags'
let g:vim_tags_project_tags_command = "/usr/local/bin/ctags -R {OPTIONS} {DIRECTORY} 2>/dev/null"
let g:vim_tags_gems_tags_command = "/usr/local/bin/ctags -R {OPTIONS} `bundle show --paths` 2>/dev/null"

使い方

プロジェクトルートディレクトリを開き、最初だけ手動で:TagsGenerateをしましょう。 あとは以下のコマンドで好きにジャンプしてください。

使うキーバインド

  • <C-]> 定義に飛ぶ
  • <C-o> 飛ぶ前のバッファに戻る
  • <C-i> <C-o>の逆

注意点

Gemfile.lockがあると、Gemfile.lock.tagsが作られます。
これにより、依存ライブラリの定義にジャンプが可能になります。

普通はルートディレクトリにtagsが作られますが、.gitがある場所で:TagsGenerateをすると、.git以下にtagsが作られます。