之前用ctags有兩個問題,一個是如果同一tag有多個定義,按ctrl+]隻能跳轉到第一處。另一個是用cscope查詢tag的調用記錄時,有些tag查不到結果。
幾年前接觸過gtags,因爲當時還不支持宇宙最好語言,所以沒用。這次測試了一下,前面兩個ctags的問題都可以解決。
安裝後需要手工拷貝gtags.vim和gtags-cscope.vim到vim的plugin目錄,然後配置如下:
let gtags_close_when_single = 1let gtags_auto_update = 0let g:cscope_silent = 1au filetype php,python,c,cpp,javascript,go map :gtagsau filetype php,python,c,cpp,javascript,go map :gtags -rnnoremap :execute 'unite gtags/def:'.expand('')nnoremap :execute 'unite gtags/ref:'.expand('')
其它選項參見前面兩個文件裏的注釋。
另外嘗試了一下phpctags,據說和ctags兼容并對php做了優化。實際使用效果和ctags沒發現有什麽區别,不過tagbar-phpctags倒是比tagbar用ctags時效果更好。
