久々に、まじめにコード読もうと思って、etagsを使おうとして、こんなに面倒だったっけ? と思い、GNU globalをいれてみることにしました。

インストール

  1. GNU global 5.7.4のダウンロード
  2. configure/make/make install
  3. emacsの設定

emacsの設定でやったこと:
gtags.elをemacsのロードパスが通ったところにいれる
emacs.elに次のことをかく

;; gtsgs
(load "gtags")
(define-key gtags-mode-map [?\C-\M-.] 'gtags-find-tag-other-window)
(define-key gtags-mode-map "\M-r" 'gtags-find-rtag)
(add-hook 'c-mode-hook
'(lambda ()
(gtags-mode 1)
(gtags-make-complete-list)
))

使い方

まず、読みたいソースのてっぺんでgtags -vする。
(これでgtagsが使うファイルが作られる)
それから、emacsで何かソースファイルを開く。
関数名のところでM-.すると、定義されてる場所をみつけてくれる。
M-rすると、参照元をみつけてくれる。