ネットに情報はあるけど、サクッと設定できなかったので 情報をまとめておきます。
最新ctagsをインストール
Mac標準のctagsでは上手く動作しない場合があるとのことなのでインストール
brew install ctags
vim上での使い方
# ジャンプしたい箇所にカーソルを当てて Ctrl + ] # ジャンプ元に戻る Ctrl + t # 該当結果が複数ある場合に、リスト表示 :tjump # 明示してジャンプ(例:Userモデルにジャンプ) :tag User
vim-tagsの設定
vim-tagsでファイル保存時に自動で、tagsファイルを更新できるようにする。 .vimrcへ以下の設定を追加する。
NeoBundle 'szw/vim-tags' let g:vim_tags_project_tags_command = "/usr/local/bin/ctags -f .tags -R . 2>/dev/null" let g:vim_tags_gems_tags_command = "/usr/local/bin/ctags -R -f .Gemfile.lock.tags `bundle show --paths` 2>/dev/null" set tags+=.tags set tags+=.Gemfile.lock.tags
デフォルトで生成されるtags, Gemfile.lock.tagsは表示させたくないので.(dot)を付けています。
下記設定もやっておくと便利かも
" tagsジャンプの時に複数ある時は一覧表示 nnoremap <C-]> g<C-]>
定義元情報を保持するctagsファイルを作成
Rails開発をしている場合、Railsのプロジェクトルートでvimを起動して以下のコマンドを打つ。
:TagsGenerate!
:TagsGenerateでもよいのだが、私は上手く出力できなかったので、!を付けて強制的に出力。
プロジェクトルートに作成されたtagsファイル
cat .tags #.tagsファイルの内容 !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ !_TAG_PROGRAM_NAME Exuberant Ctags // !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ !_TAG_PROGRAM_VERSION 5.8 // Application config/application.rb /^ class Application < Rails::Application$/;" c class:MyConvApp ApplicationHelper app/helpers/application_helper.rb /^module ApplicationHelper$/;" m create_client app/helpers/google_calendar_helper.rb /^ def create_client()$/;" f class:GoogleCalendarHelper
rubyではc:クラス、m:モジュール、f:ファンクションへジャンプできるようになる。
これで、メソッド名やクラス名を変えて保存した時点でtagsファイルを更新できるようになった。 これでさらにサクサク開発できますね。よっしゃ!
参考URL
macにctagsインストールして、vimでRailsのソースコード読む - Qiita
Rubyのコードを読むのが捗る技 (Vim) - Qiita
vim-tagsで快適Rubyコードリーディング - k0kubun's blog
vimでrailsのメソッドにジャンプでクッソはかどる - komagataのブログ
Vim + Rails + ctags - Qiita