gnu globalがdebian, ubuntuで動かない
vimでgnu globalを使って定義元や参照先に飛びたいなと思っています。
現在はmacとdebian,ubuntuをそれぞれ使っており、今の所macの方では問題なく動いています。
それで、debianとubuntuの方にも同様にgnu globalを導入しようとしているのですが
GTAGSがうまく生成されません。ファイル自体はGTAGS GPATH GRTAGSと生成されるのですが、GTAGSの中身が空っぽ(正確には1行だけ)で、ターミナルの方でglobalコマンド打っても、vimの方でgtags.vimを使って:Gtags -f %コマンドを打ってみても動かない状況です。
そもそも正常に生成したGTAGSには各種タグ情報が含まれているため1行ってのはありえないはずです。
-vオプションを使ったところ全ファイルからタグ情報を抽出してはいるようなんですが、どうにもうまく行きません。
インストール手段についてですが
macではhomebrewを使い
- brew install global --with-exuberant-ctags --with-pygments
コマンドでインストールしたものが動きましたので
まず、linuxbrewを使ってインストールしてみました。しかし動かず
- apt install global
(この際pyenvで入れたpython2.7とpython3.6.3にpygmentsをインストール、さらにexuberant-ctagsをあらかじめaptでインストール)しましたがそれも同様に動きませんでした。バージョンはglobalが6.5.7でgtagsが6.5.6でした。
上記2つの手段でも動かなかったため、global-6.4とglobal-6.5,global-6.5.7をそれぞれソースコードからビルドしてみましたがどれも動きませんでした。
ここで一つ実験してみました
macの方で作った正常なGTAGS,GPATH,GRTAGSファイルがあるフォルダで
parallelsを使いdebianからそのフォルダにアクセス、正常なG*ファイルがあるとうまく動くのか試したところ
ターミナル上ではglobal {method名}で対象のファイル名が表示されました。
しかしvim上ではうまく行きませんでした。
:Gtags -f %と打ってみると
- Error: global command failed. command line: global --result=ctags-mod -qf 'XXX'
というエラー
:!global {method名}と打ってみると
- global: directory '/home/{ユーザ名}/.cache/tags_dir/{hoge}' not found.
とエラーが出ました。{hoge}は:!globalコマンドを打ったファイルがあるディレクトリへのフルパスから/をすべて抜き取ったものです。
gtagsに関するプラグインは
- gtags.vim(version 0.6.8)
- jsfaint/gen_tags.vim
- ozelentok/denite-gtags
を使っています。
色々ググってはみましたがそもそもgnu globalに関する情報が少なく、再現性があるのかすら不明な状況です。
それともし他におすすめのタグジャンプ関係のプラグイン等ありましたら教えていただけると嬉しいです。
よろしくお願いします。