global

GNU Globalを使いこなしたい

More than 3 years have passed since last update.


はじめに

職場でGNU Globalを使っていますが、使いこなせていないです。慣れるために、

自宅のOSXにもGNU Globalをインストールしました。

職場ではHomebrewを使っていますが、自宅ではRudixを使っています。結論から述べると、Rudixを使ってGNU Globalをインストールすると、GNU Globalのパーサーの1つであるPygmentsパーサーはExuberant Ctagsを利用しませんでした。

gtags - GNU GLOBALの対応言語を大幅に増やすPygmentsパーサーを導入する - Qiita

こちらの記事を参照すると、GNU Globalのビルド時にpythonやctagsをチェックしていることが分かります。ビルドの手間を省くことができるけれど、Rudixは今回のようなカスタマイズみたいなことに弱いのかもしれません。

この記事では、忘備録として、GNU GlobalのインストールとPygments導入手順を紹介したいと思います。


準備


コマンドラインツール

GNU Globalをビルドするため、コマンドラインツールが必要になります。

$ xcode-select --install

これで、コマンドラインツールをインストールします。確か、通信量は250MBくらいでした。


Rudix

ビルドせずにパッケージをインストールするために、Rudixが必要になります。

Rudix!からrudix-2015.6.1-0.pkgをダウンロードして、インストールします。


Exuberant Ctags

GNU Globalで使うため、Exuberant Ctagsが必要になります。

$ sudo rudix install ctags

これで、Exuberant Ctagsをインストールします。


pip

Pygmentsをインストールするために、pipが必要になります。

$ sudo rudix install python-pip

これで、pipをインストールします。


Pygments

GNU Globalで使うため、Pygmentsが必要になります。

$ sudo pip install --upgrade

$ sudo pip install pygments

これで、Pygmentsをインストールします。


GNU Global

GNU GLOBAL source code tagging systemから最新のソースコードアーカイブをダウンロードして、ビルドして、インストールします。

人間とウェブの未来 - GNU GLOBALとvimで巨大なコードでも快適にコードリーディング

ディレクトリ構成などは、こちらを参考にしました。

シンボルリンクだけ少し変えました。

$ sudo ln -s /usr/local/global/bin/gtags /usr/local/bin/gtags

$ sudo ln -s /usr/local/global/bin/global /usr/local/bin/global


.globalrc

快適にPygmentsを使うために、設定ファイルが必要になります。

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

これで、設定ファイルをコピーします。

yoshizow/global-pygments-plugin

こちらを参考に編集します。

 default:\

- :tc=native:
+ :tc=native:tc=pygments:
+pygments:\
+:tc=pygments-parser:tc=htags:

これで、Pygmentsパーサーを使うように編集します。編集することで、Pygmentsパーサーために環境変数を設定する必要やコマンドラインオプションを指定する必要がなくなります。

この記事で紹介した内容だと、/usr/local/global/libにpygments-parser.laがありますので、設定ファイルの編集が必要になります。


動作確認

問題なさそうですが、少し期待した結果ではありませんでした。よく分からない状態です。。

global-test % gtags -d GTAGS

__.COMPNAME __.COMPNAME
__.COMPRESS __.COMPRESS ddefine ttypedef
__.VERSION __.VERSION 6
Hello 2 @n 1 class @n
hello 2 @n 2 def @n
message 2 @n 6 def @n; 'hello, world'; end

global-test % gtags -d GRTAGS
__.COMPACT __.COMPACT
__.COMPLINE __.COMPLINE
__.COMPNAME __.COMPNAME
__.VERSION __.VERSION 6
message 2 @n 3
puts 2 @n 3


まとめ

GNU GlobalのインストールとPygments導入手順を紹介しました。GNU Globalを使いこなしたいですね。