kenjuの日記

About Programming, Mathematics and Security

RubyのソースコードリーディングにGNU GLOBALを使うと便利

tl;dr

  • Rubyのソースコードのようなある程度大きい規模のコードリーディングにはタグシステムが必須
  • いくつかあるツールの中で、GNU GLOBALが手軽でおすすめ
  • GNU GLOBALでコードリーディングするときによく使うキーボードショートカットをまとめた

背景

私が最初にGNU GLOBALの存在を知ったのは、↓の記事を読んだ時でした。それ以来、

blog.matsumoto-r.jp

別にRubyのソースコードでなくてもなんでもよくて、Node.jsやlibeventやKernerのソースコードでもなんでもいい。 また、GNU GLOBALでなくてもなんでもよくて、ctagsとかタグシステムであればなんでもいい。

使い方

自分も上記の記事内で紹介されているキーバインディングをそのまま利用しています。

map <C-g> :Gtags 
map <C-h> :Gtags -f %<CR>
map <C-j> :GtagsCursor<CR>
map <C-n> :cn<CR>
map <C-p> :cp<CR>

定義したショートカットキーに加え、コードリーディング中に使う頻度の高いキーバインドは以下です↓

  • Ctrl + g -> {検索文字列}: 現在のファイルからgrep
  • Ctrl + g -> -g {検索文字列}: 全てのソースコードからgrep
  • Ctrl + h: 関数一覧を開く
  • Ctrl + j: 関数の定義場所に移動
  • Ctrl + n: Quickfix List領域で下にカーソル移動
  • Ctrl + p: Quickfix List領域で上にカーソル移動
  • Ctrl + o: 直前の場所にjumpする
  • Ctrl + w (2.times): VimのEditor領域とQuickfix List領域間のカーソル移動