GNU Global(gtags)とは
複数のソースファイルから関数や、変数の定義元/参照元を検索、移動することができるツール
https://www.gnu.org/software/global/global.html
セットアップ
環境
ubuntu18.04
amd64
ダウンロード
下記リンクから、自分の環境に合うものを選択。
https://launchpad.net/ubuntu/bionic/+package/global
ダウンロードリンクが出てくるページに飛ぶので、それをダウンロード
インストール
ダウンロードしたdebファイルからインストール
$ cd Downloads
$ apt install global_6.6.2-1_amd64.deb
vimプラグインとして入れる
$ ~/.vim/plugin
$ cp /usr/share/vim/addons/plugin/gtags.vim ~/.vim/plugin
準備
検索用のデータベースを作成する。
検索をかけたいプロジェクトルートに移動して、globalを実行するだけでOK。
$ cd proj/
$ gtags
vimから使う
コマンドモードで:Gtags 関数名
で定義元にジャンプできる。
使い方の詳細は下記を参照
https://www.gnu.org/software/global/globaldoc_toc.html#Vim-editor
vimの設定を少しカスタマイズ
Gtagsで検索結果が複数ヒットすると、QuickFixリストで一覧表示してくれる。
Quickfixリストを使った操作を簡単にするために、とりあえず次の設定を.vimrcに追加した。
QuickFixリストにジャンプするキーバインドを追加
nnoremap [o :copen<CR>
QuickFixリストからファイルがオープンされたら、それをタブで開くようにする設定
set switchbuf+=usetab,newtab