GNU globalすげぇ。

GNU globalが気になったので使ってみた。

何といっても凄いのは、「global -r hoge」で参照元に飛べる点。コードリーディングには必修です。

Vimとの連携は以下を参照。

うちの環境では、/usr/share/gtags/gtags.vimプラグインが入ってた。パッチを当てないとエンターで飛べないので当てた方がいい。

タグの作成は、

% gtags

これだけ。簡単杉。

では、Vimから使ってみる。rubyのソースを読む。

:Gtags -r malloc
dir.c|957| #define GLOB_ALLOC(type) (type *)malloc(sizeof(type))
dir.c|958| #define GLOB_ALLOC_N(type, n) (type *)malloc(sizeof(type) * (n))
dln.c|1877| vms_filespec = malloc(strlen(filespec)+1);
...(略

mallocがどこで使われているかわかる。対応言語が少ないのが残念だけど、参照元を見たいときはGNU global。


あんまり意味が無いけど、zshの補完もヤバい。

% global -t m<tab>
main                   match_string      method_inspect
main_thread            match_to_a        method_missing

ステキ過ぎる。