- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-10-24T23:48:07+09:00","","")
#author("2022-12-02T23:03:01+09:00","","")
#topicpath
///////////////////////////////////////////////////////////////////////////////
* 目次 [#m3be6eaf]
#contents();
////////////////////////////////////////////////////////////////////////////////
* gtags / global [#uc7a788c]
- タグシステムの一つ
- debian では、 global パッケージに入っている
//==============================================================================
** tag の生成 [#he22dbd6]
$ gtags [options] [path]
$ gtags -f <files>
$ gtags -v
- gtags には、etags と違って append mode が存在しないため、xargs でマルチスレッド化して実行するのは不可かもしれない。
- -f <file> を指定しない場合、gtags はカレント以下のディレクトリを走査してタグ情報を生成する。
- tag の生成処理が終わると、実行したディレクトリ配下に、下記4つのファイルが作られる:
GPATH GTAGS GRTAGS GSYMS
//==============================================================================
** emacs の設定 [#t7049b32]
- gtags.el を入手する
-- ディストリビューションによっては、下記のようなパスにインストールされる場合もある
/usr/share/emacs/site-lisp/global/gtags.el
-- もしディストリビューションで用意されていない場合は、手動で取得し、library-path の通っている場所に配置する。
-- 大文字・小文字を区別するように設定する~
→ [[検索時に大文字・小文字を区別するかしないかの設定>Editor/emacs#case-fold-search]]
- gtags.el のデフォルトのキーバインド
|~binding |~command |~ description |
|C-c t |gtags-find-tag |関数の定義元へ移動 |
|C-c r |gtags-find-rtag |関数の参照元へ移動 |
|C-c s |gtags-find-symbol |変数の定義元と参照元へ移動 |
|C-c p |gtags-find-file |タグで解析されているファイルへ移動 |
|C-t |gtags-pop-stack |移動前の場所に戻る |
- キーバインドを設定する
(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
'(lambda ()
(local-set-key "\C-v" 'gtags-visit-rootdir)
(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)
(local-set-key "\M-]" 'gtags-find-tag-from-here);現在のカーソルがある語をtagとして検索
(local-set-key "\M-T" 'gtags-find-pattern);テキストを検索
(local-set-key "\M-f" 'gtags-find-file) ;ファイルを検索
(local-set-key "\C-t" 'gtags-pop-stack) ;一つ前の検索結果に戻る
))
//==============================================================================
** vi での設定 [#acde7a15]
+ 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>
//------------------------------------------------------------------------------
*** 操作 [#s7eecedc]
|~binding |~ description |
|C-h |そのソースの関数を表示 |
|C-n |リストのカーソルを下に移動 |
|C-p |リストのカーソルを上に移動 |
|C-j |現在の関数の中にジャンプ |
|C-o |ジャンプする前の位置に戻る |
//==============================================================================
** 参考リンク [#kf18ab46]
- [[GNU GLOBAL(gtags)>http://cha.la.coocan.jp/doc/gnu_global.html]]
- [[新機能の御紹介>http://www.tamacom.com/handbook/new.html]]
- [[[Linux][開発] GNU GLOBALとvimで快適な開発環境を手に入れる>https://qiita.com/suzutsuki0220/items/1e755fd98e5b12af3e2d]]