LoginSignup
27
26

More than 5 years have passed since last update.

Vim で alt-gtags.vim を使って GNU GLOBAL (gtags) を利用する

Last updated at Posted at 2013-09-22

GNU GLOBAL とは

GNU GLOBAL はとても優れたソースコードタギングシステムです。
http://www.gnu.org/software/global/
http://www.tamacom.com/global-j.html

この、とても優れたソースコードタギングシステムを、とても優れたエディタであるところの Vim で快適に利用する、というお話。

GNU GLOBAL のインストール

まずは、GNU GLOBAL をインストールします。

基本はソースコードからのコンパイルですが、パッケージ管理からインストールすることもできます。
Windows の場合は、公式サイトからバイナリを配布しているとこへのリンクがあるので、そこからダウンロードするのが楽でしょう。

私は Mac なので Homebrew から入れました。

brew install global

詳しく書いてくれているサイトがあるので、参照させてもらうのが一番です。

http://www.machu.jp/diary/20090307.html
http://uguisu.skr.jp/Windows/gtags.html

など。

これより、

  • GNU GLOBAL をインストール済みで、
  • gtags, global のコマンドの場所にパスが通っていて、
  • タグファイルが生成されている。

という状態を前提として進めます。

alt-gtags.vim のインストール

はじめに

GNU GLOBAL は、エディタで使うことを想定し、Vim 上での利用を可能にする gtags.vim というインターフェースのプラグインを提供してくれています。

が、私の環境ではそのプラグインがうまく動かず、ちょこちょこ修正していましたが難しくてよくわからなくなってきたので、alt-gtags.vim というのを用意しました。[PR]

if_pyth

alt-gtags.vim は Python インターフェースが必須なので、--enable-pythoninterp でビルドされている必要があります。
http://vim-users.jp/2010/03/hack132/

インストール

alt-gtags.vim プラグインは github で配布されているので、NeoBundle を使っている場合は、.vimrc に以下を書けば一発です。

NeoBundle '5t111111/alt-gtags.vim'

もしくは、普通にダウンロードして展開してプラグインのパスが通っているところに置けばOKです。
https://github.com/5t111111/alt-gtags.vim

alt-gtags.vim の利用

コマンド

alt-gtags.vim をインストールすると、以下のコマンドが実行可能になります。

  • AltGtags -f
    カレントバッファの関数のリストを QuickFix ウィンドウに表示する
  • AltGtags
    カーソル位置の関数の定義位置を QuickFix ウィンドウに表示する
  • AltGtags -r
    カーソル位置の関数の参照位置を QuickFix ウィンドウに表示する
  • AltGtags -s
    カーソル位置のシンボルの参照位置を QuickFix ウィンドウに表示する

実行例

以下が、例として AltGtags -f を実行した時の画面です。

alt-gtags.vim-1.png

もちろん、QuickFix ウィンドウから該当の場所にジャンプすることができます。

キーバインドの設定

好きなキーにバインドすればよいと思いますが、私の設定は以下です。

" QuickFix
map <C-n> :cn<CR>
map <C-p> :cp<CR>
" alt-gtags.vim
nnoremap <C-j> :AltGtags<CR>
nnoremap <C-k> :AltGtags -r<CR>
nnoremap <C-l> :AltGtags -s<CR>

[追記] <C-i>を潰すのはさすがにどうかと思ったので修正

追記

zsh と MacVim 環境でエラーが出るときの対処

2012-12-22 追記

AltGtags コマンドの実行時、global および gtags コマンドが見つからずエラーになることがあります。

これは、MacVim (現在 7.4 で確認) と zsh を使っている環境の場合、MacVim 側が正しく PATH を認識できない不具合によるもののようです。
GLOBAL を Homebrew からインストールしていた場合、/usr/local/bin にコマンドがインストールされているため、コマンドが見つかりません。

回避策として、~/.zprofile 内で PATH を設定してあげるとうまくいきます。

$ cat ~/.zshrc | grep "export PATH" >> ~/.zprofile
27
26
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
27
26