LoginSignup
4
8

More than 3 years have passed since last update.

gtags/global インストール メモ

Last updated at Posted at 2018-05-02

ctagsを入れる

sudo apt install exuberant-ctags -y

pygmentsを入れる

python -m pip 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でビルトインパーサでパースできる言語のコードはビルトインパーサでパースし、そうでなかった言語のコードはpygmentsでパースするように設定する

編集前
default:\
    :tc=native:
編集後
default:\
    :tc=native:tc=pygments:

ビルトインパーサの設定を変更し、.hファイルをcではなくcppとしてパースするようにする( 参考: https://qiita.com/ochachalton/items/aa245cdcec0078823462 )

編集前
gtags:\
    :tc=common:\
    :tc=builtin-parser:
builtin-parser:\
    :langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
編集後
gtags:\
    :tc=common:\
    :tc=builtin-parser:
builtin-parser:\
    :langmap=c\:.c,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H.h,php\:.php.php3.phtml:

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>
'''
4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8