C-t
: カーソル部分のタグにジャンプ
C-o
: 前いた場所に戻る(tagに限らずいつも使いまくるヤツ)
g C-t
: タグ候補が複数ある場合に候補一覧を表示
この3つだけでクッソはかどる
Xcodeとかの機能がうらやましい
IDEでは当然の機能ですが、クラスやメソッドの定義に飛べるのって便利ですよね。vimやemacsでは設定すればできるんだろうけどやってる人あんまり見ない。
開いてるbuffer内のものしか飛べないとか、明示的にtag生成コマンド実行とか論外。
そんな折、Gemfileのgemを含めて保存時自動tag生成してくれるvim-tagsというpluginがとても良かったのでご紹介。
vim-tagsの設定
$ brew install ctags
# ~/.vimrc:
Bundle 'szw/vim-tags'
let g:vim_tags_project_tags_command = "/usr/local/Cellar/ctags/5.8/bin/ctags -f tags -R . 2>/dev/null"
let g:vim_tags_gems_tags_command = "/usr/local/Cellar/ctags/5.8/bin/ctags -R -f Gemfile.lock.tags `bundle show --paths` 2>/dev/null"
set tags+=tags,Gemfile.lock.tags
macデフォのctagsはbsdで色々違うのでbrewで入れてfullpath指定。
ファイル保存時にtagsファイルを生成。ちょっと遅くなるので非同期実行するvim-dispatch pluginとの連携も試してみたいと思います。
とにかく機能が細かくgemに分割される昨今。これははかどる!