ソースコードリーディングをするときにctagsを使いたい

Posted on Tue 16 December 2014 in blog

きっかけ

とある事情によって、Fluentdプラグインを自作する or 世間の良い実装のプラグインを見つける必要がありました。
でも、Fluentdを真面目に使ったことがないので、いまいち眺めていても難しいなー、と思っていました。
そもそも、Rubyもまともに書いていないため、ソースを見ても、Rubyのものなのか、Fluentdで定義されているのかが、
ぱっと見でわからず、いちいち時間がかかっていた感じです。

ソースコードを読む上で支援してくれるものがあったらなー、と思っていたら、タグをつけると良いと聞いたので、やってみます。

流れ

今回はmacでやることにします。
brew がインストールしてあることにしています。

  1. Exuberant Ctagsのインストール

    brew install ctags
    
  2. tagの生成(Emacsから使うには、etagsと呼ばれる形式で生成)

    # 読みたいソースのトップに移動
    cd /home/me/app
    # タグの生成 (Emacs の場合)
    ctags -Re
    # タグの生成 (Vim の場合)
    ctags -R
    
  3. コードリーディング

    1. Emacs の場合

      キー 意味
      M-. ジャンプ(関数, クラス)
      C-u M-. 次の検索
      C-u – M-. 前の検索
      M-* 元の場所
    2. Vim の場合

      いつも以下のサイトを参考にして生きている。

      http://archiva.jp/web/tool/vim_ctags.html