質問: 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に関する情報が少なく、再現性があるのかすら不明な状況です。 それともし他におすすめのタグジャンプ関係のプラグイン等ありましたら教えていただけると嬉しいです。 よろしくお願いします。
回答: 自己解決 :!globalをしてみたところ、本来gen_tags.vimで読み込まれるであろう~/.cache/tags_dir/{hoge}の中身がありませんとの表示 この時点でgen_tags.vimがglobalに何らかの細工をしていることは明白になったので、gen_tags.vimのプラグインを読み込まないように設定 そして.globalrcを共有せずにインストールしたgtagsのgtags.confを持ってくる 以上でmacOS,debian共に期待通り動いた 原因は不明