UbuntuでPythonのコードをGtags(Global)する

 Qiitaに投稿しようとおもったら、言いたいことが全部この記事に書いてあったので、はてなに残骸を記録しておく。

qiita.com

下準備

globalの入手

 aptだと古いものがインストールされてしまうので公式にから最新者をDLしてきましょう。 GNU global 公式

 自分がインストールした時は、v6.6.1でした。公式は古臭いサイトですが、わりと更新されます。

wget http://tamacom.com/global/global-6.6.1.tar.gz
tar xvf global-6.6.1.tar.gz

globalのビルドに必要なものをインストール

GNU Global公式に書いてあるものをインストールしましょう。 texinfoは書いてないですがmakeするときに怒られるので入れましょう。

sudo apt install automake autoconf gperf bison flex texinfo

Pygmentsのインストール

gtagsはデフォルトだと、C, C++, Yacc, Java, PHP4, assemblyにしか対応していませんが、Pygmentsを使うことで様々な言語のタグ付けが可能です。

pip install Pygments

globalのビルド&インストール

簡単です。もし足りないものがあるとエラーがでるので、都度入れていきましょう。

cd global-6.6.1

sh reconf.sh 
./configure
make
sudo make install

globalrcとgtags.conf

最低でもホームディレクトリに.globalrcがないとPygmentsが使えないので、デフォルトの設定ファイルをコピーしましょう。

cp /usr/local/share/gtags/gtags.conf ~/.globalrc

特定のパスはタグ付けしたくない などプロジェクトごとに細かい設定したい場合は、gtags.confというファイル名でプロジェクトのルートディレクトリに置きましょう。

cp /usr/local/share/gtags/gtags.conf ~/<PROJECT_DIRECTORY>/gtags.conf

タグ付け

Pythonのコードをタグ付けするときは、パーサーにPygmentsを選びましょう。

gtags --gtagslabel=pygments

環境変数で指定することもできます

export GTAGSLABEL=pygments
gtags

.globalrcやgtags.confでも設定できます。 default:\がnativeと記載されているので、これをpygmentsに設定しておけば、オプションの指定や環境変数の設定が不要になります。

default:\
        :tc=pygments:
        #:tc=native: