gtags / global†
- タグシステムの一つ
- debian では、 global パッケージに入っている。
- 敢えて絞った結果なのかもしれないが、 emacs 用の gtags.el で用意されている機能は、 cscope, rtags のそれと比べて随分少ない。
tag の生成†
$ gtags [options] [path]
$ gtags -f <files>
$ gtags -v
- gtags には、etags と違って append mode が存在しないため、xargs でマルチスレッド化して実行するのは不可かもしれない。
- -f <file> を指定しない場合、gtags はカレント以下のディレクトリを走査してタグ情報を生成する。
- tag の生成処理が終わると、実行したディレクトリ配下に、下記4つのファイルが作られる:
GPATH GTAGS GRTAGS
file | description |
GTAGS | シンボル定義のデータベース |
GRTAGS | シンボル参照のデータベース |
GPATH | ソースファイルへのパスのデータベース |
emacs の設定†
vi での設定†
- vimのプラグインを ~/.vim/plugin にコピー
$ mkdir ${HOME}/.vim/plugin
$ cp /usr/share/doc/global/examples/gtags.vim.gz ${HOME}/.vim/plugin
$ cd ${HOME}/.vim/plugin
$ gunzip gtags.vim.gz
/.vimrc にgtagsの設定を追加
map <C-h> :Gtags -f %<CR>
map <C-j> :GtagsCursor<CR>
map <C-n> :cn<CR>
map <C-p> :cp<CR>
binding | description |
C-h | そのソースの関数を表示 |
C-n | リストのカーソルを下に移動 |
C-p | リストのカーソルを上に移動 |
C-j | 現在の関数の中にジャンプ |
C-o | ジャンプする前の位置に戻る |
参考リンク†