memo
install
global
GNU
gtags

gtags インストール メモ

ctagsを入れる

sudo apt install exuberant-ctags -y

pip2を入れる(ごめんなさい絶対ベストプラクティスじゃないですこれ)

sudo apt install python-pip -y

pygmentsを入れる

sudo -H pip2 install pygments

globalを入れる

sudo apt install global -y

globalのバージョンを確認する

global --version
出力
global - GNU GLOBAL 5.7.1

5以下なら6をビルドする
ここから最新のglobalを落とす

wget http://tamacom.com/global/global-6.6.2.tar.gz #現在

展開

tar zxvf global-6.6.2.tar.gz

ビルド

cd global-6.6.2/
./configure --prefix=/usr/local # 失敗するので実行せず次へ進んでください
出力
...
configure: error: curses library is required but not found.
If you are not going to use gtags-cscope, please try ./configure --disable-gtagscscope

cursesを入れる

sudo apt install libncurses5-dev -y

再ビルド

./configure --prefix=/usr/local

成功したので続ける

make
make install # 失敗するので実行せず次へ進んでください
出力
...
/bin/mkdir: cannot create directory ‘/usr/local/bin/share’: Permission denied
...

sudo必要らしい

sudo make install

成功したっぽいので確認

which gtags
出力
/usr/local/bin/gtags
gtags --version
出力
gtags (GNU GLOBAL) 6.6.2
Copyright (c) 1996-2017 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
global --version

まだ古いバージョンなら一度削除し、global/global/usr/local/bin/globalにコピーする。

gtagsにpygmentsを呼び出す設定をする
設定ファイルであるglobal.confがビルドしたディレクトリにある
それを~/.globalrcにコピーする

cp -a gtags.conf ~/.globalrc

編集する

vim ~/.globalrc
編集前
default:\
    :tc=native:
編集後
default:\
    :tc=native:tc=pygments:

vimプラグインを入れる
hook_addのところは適宜

[[plugins]]
repo = 'lighttiger2505/gtags.vim'
hook_add = '''
    " Options
    let g:Gtags_Auto_Map = 0
    let g:Gtags_OpenQuickfixWindow = 1
    " Keymap
    nnoremap <C-j> :GtagsCursor<CR>
    nnoremap <C-r> :<C-u>exe("Gtags -r ".expand('<cword>'))<CR>
'''