環境

追記予定
vagrant box : https://atlas.hashicorp.com/centos/boxes/7

GNU GLOBALインストール

必要なパッケージをインストール

# yum install wget gcc ncurses-devel vim

gnu globalのパッケージをダウンロード(wget)

# cd /tmp
# wget ftp://ftp.gnu.org/pub/gnu/global/global-6.5.5.tar.gz
# cd /usr/local/src/
# tar xzvf /tmp/global-6.5.5.tar.gz

コンパイル & インストール

# cd global-6.5.5/
# ./configure
# make
# make install

プラグイン(gtags.vim)の導入

プラグイン導入方法は以下の2つのどちらか
1.プラグインディレクトリにgtags.vimを配置する
2.~/.vimrcを作成して、gtags.vimを読み込ませる

” Drop the file in your plug-in directory or source it from your vimrc.

編集方法1:プラグインディレクトリにgtags.vimを配置する

プラグインディレクトリの作成
デフォルトのgtags.vimのありかを探して、見つかったものをコピーする

$ mkdir -p ~/.vim/plugin
$ sudo find / -name gtags.vim
$ cp /usr/local/share/gtags/gtags.vim ~/.vim/plugin/

編集方法2:~/.vimrcからgtags.vimをsourceする

.vimrcの作成

cat >> ~/.vimrc << "EOF"
let Gtags_Auto_Map = 1
:source /usr/local/share/gtags/gtags.vim
EOF

キーマップの追加

編集方法は以下の2つ

  1. gtags.vimの編集
  2. .vimrcの編集

編集方法1:gtags.vimの編集

ファイル末尾にあるGtags_Auto_Mapに関する設定を以下のように編集する。
欲しいキーマップを追記。不要な設定をコメントアウト。

" Suggested map:
if g:Gtags_Auto_Map == 1
"       :nmap <F2> :copen<CR>
"       :nmap <F4> :cclose<CR>
"       :nmap <F5> :Gtags<SPACE>
"       :nmap <F6> :Gtags -f %<CR>
"       :nmap <F7> :GtagsCursor<CR>
"       :nmap <F8> :Gozilla<CR>
        :nmap <C-n> :cn<CR>
        :nmap <C-p> :cp<CR>
"       :nmap <C-\><C-]> :GtagsCursor<CR>
        :nmap <C-g> :Gtags
        :nmap <C-h> :Gtags -f %<CR>
        :nmap <C-j> :GtagsCursor<CR>
endif

編集方法2:.vimrcの編集

キーマップ設定を追加。

cat >> ~/.vimrc << "EOF"
map <C-g> :Gtags 
map <C-h> :Gtags -f %<CR>
map <C-j> :GtagsCursor<CR>
map <C-n> :cn<CR>
map <C-p> :cp<CR>
EOF

参考

追加したキーマップは以下のサイト参考

使い方

linux kernelのソースタグ付けを例に。

# cd /tmp
# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.12.tar.xz
# cd /usr/local/src/
# tar xvf /tmp/linux-4.8.12.tar.xz 
# cd linux-4.8.12/
# gtags -v
# vim .
あるいは
$ vim.
ファイルを選択してCtrl + hとか。

3つのファイルが作成される
(古いバージョンは4つ?GSYMSというファイルは生成されない)

$ ls G*
GPATH   GRTAGS  GTAGS

してみて

お作法としては、プラグインディレクトリに未編集のプラグインデータを配置して、実設定は.vimrcにまとめて記述する。という方が良いのだろうか。そんな気がする。