LoginSignup
8
7

More than 5 years have passed since last update.

GNU Globalを使いこなしたい

Posted at

はじめに

職場で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を使いこなしたいですね。

8
7
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
8
7