alt-gtagsからunite-gtagsにした

unite-gtags

gnu globalを使ったタグジャンプにalt-gtagsを使っていたけれど、uniteでできれば操作性も一緒で便利だね? ってことで、unite-gtagsに乗り換えました。

Goal

  • unite-gtagsをインストールする
  • 複数のタグファイルを対象にglobalできるようにする

インストール (Neobundle)

NeoBundle 'hewes/unite-gtags'

GitHub: https://github.com/hewes/unite-gtags

$GTAGSLIBPATH 相当の設定

global$GTAGSLIBPATHを設定することで、
カレントディレクトリ以外のタグファイルを検索できる。

unite-gtagsではこの$GTAGSLIBPATHの値をディレクトリごとに指定できる。

サンプル

let g:unite_source_gtags_project_config = {
\   '_': {
\     'gtags_libpath':
\       [ '/usr/include/' ]
\   }
\   '/tmp/sample/': {
\     'gtags_libpath':
\       [ '/usr/include/'
\       , '/home/foo/my/include/'
\       ]
\   }
\ }

上記の設定では

  • カレントディレクトリが/tmp/sample/の時
$GTAGSLIBPATH=/usr/include/:/home/foo/my/include/ global ...

と同じ動作をする

  • 指定されていないディレクトの場合は、
$GTAGSLIBPATH=/usr/include/ global ...

と同じ動作をする

ディレクトリであることをしっかり示そう

ディレクトリごとの設定をする場合は/まで書く必要があります。
なので、以下の設定はNG

let g:unite_source_gtags_project_config = {
\   '/tmp/sample': {    " 本来は /tmp/sample/ と書かなければ動作しない
\     'gtags_libpath':
\       [ '/usr/include/'
\       , '/home/foo/my/'
\       ]
\   }
\ }

ディレクトリごとの設定の絶対パス/まで書くゼッタイ

その他

その他の詳しいことは README.md とソースコードを見てください
GitHub: hewes/unite-gtags

前まで使っていたalt-gtags
GitHub: 5t111111/alt-gtags.vim