gtatgsの利用方法

以下のpdfが参考になった。
http://www.geocities.com/shankara_c/download/global.pdf


まず、.emacsへのgtagsの設定はひげぽんさんを参照。
http://d.hatena.ne.jp/higepon/20060107/1136628498

(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
'(lambda ()
(local-set-key "\M-t" 'gtags-find-tag)
(local-set-key "\M-r" 'gtags-find-rtag)
(local-set-key "\M-s" 'gtags-find-symbol)
(local-set-key "\C-t" 'gtags-pop-stack)
))
(add-hook 'c-mode-common-hook
'(lambda()
(gtags-mode 1)
(gtags-make-complete-list)
))


でも、/usr/include を参照しつつ、別のパスでプログラミングしたいので以下を追加設定。
目的のライブラリが配置されているパスのトップでgtagsを実行(再帰的に実行されます)
~/.incgtags はGTAGSとかの4つのインデックス内容を保存したファイルを作成しておきたい場所。

$ cd /usr/include
$ gtags ~/.incgtags


で、次に環境変数を設定しておく。

$ export GTAGSROOT=/usr/include #gtagsを実行したパスを設定
$ export GTAGSDBPATH=/.incgtags #GTAGSなどのインデックスファイルが存在するパスを設定


これで以下のような場所で開発しても問題なくgtagsが利用できる。

$ emacs21 ~/workspace/linux-c/test/test.c

M-t 関数定義にジャンプ
C-t ジャンプ先から戻る
M-r 関数呼び出し場所にジャンプ
M-s シンボル参照先にジャンプ