1. 安装配置:
1. 先安装global,yum或者apt源里面有,也可以源码安装;
2. 要用再emacs上,需要下载源码包:http://tamacom.com/global/global-6.2.tar.gz,解压,复制源码包根目录下面的gtags.el到emacs的load-path的一个目录下,再.emacs中加入:
(autoload 'gtags-mode "gtags" "" t);
2. 使用 (with Emacs)
参考:http://www.gnu.org/software/global/manual/global.html,这个是global的文档兼教程,比cedet各工具的文档,易读性和可操作性上要好上不少。
gtags-mode:打开/关闭 gtags mode;开启以后,可以使用gtags-为前缀的很多命令了;
gtags-find-tag:转到tag的定义处,默认为光标所在处的tag;
gtags-find-rtag:找出引用了tag的地方,输出列表格式如下:第一列为tag名,第二列为所在文件行号,第三列为所在文件名,第四列为所在语句;可以移动光标,然后按回车跳转到目标,然后可以通过gtags-pop-stack回到这个列表;
gtags-pop-stack:
gtags-find-tag-from-here:如果当前光标处的tag是定义,则它同gtags-find-rtags,如果不是定义,则它同gtags-find-tag;(好用)
gtags-find-symbol:如果有些符号没有定义在GTAGS中,可以使用这个命令;
gtags-find-with-grep:查找字符串,可以使用POSIX 正则表达式;
3. 快捷键 (in emacs)
快捷键定义在 gtags.el 中:
(;;; gtags.el --- gtags facility for Emacs)
基本都是C-c再加上 gtags 命令关键字:
;; Key mapping of gtags-mode.
(if gtags-suggested-key-mapping
(progn
; Current key mapping.
(define-key gtags-mode-map "\C-ch" 'gtags-display-browser)
(define-key gtags-mode-map "\C-]" 'gtags-find-tag-from-here)
(define-key gtags-mode-map "\C-t" 'gtags-pop-stack)
(define-key gtags-mode-map "\C-cP" 'gtags-find-file)
(define-key gtags-mode-map "\C-cf" 'gtags-parse-file)
(define-key gtags-mode-map "\C-cg" 'gtags-find-with-grep)
(define-key gtags-mode-map "\C-cI" 'gtags-find-with-idutils)
(define-key gtags-mode-map "\C-cs" 'gtags-find-symbol)
(define-key gtags-mode-map "\C-cr" 'gtags-find-rtag)
(define-key gtags-mode-map "\C-ct" 'gtags-find-tag)
(define-key gtags-mode-map "\C-cd" 'gtags-find-tag)
(define-key gtags-mode-map "\C-cv" 'gtags-visit-rootdir)
; common
(define-key gtags-mode-map "\e*" 'gtags-pop-stack)
(define-key gtags-mode-map "\e." 'gtags-find-tag)
(define-key gtags-mode-map "\C-x4." 'gtags-find-tag-other-window)
(if gtags-disable-pushy-mouse-mapping nil
(define-key gtags-mode-map [mouse-3] 'gtags-pop-stack)
(define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event)))
)
4. 搜索
用gtags-find-tag搜索时,可以用^main,来搜索包含main的,但不会搜索出如remain这样的字符串,如果不用这回搜索出remain这样的字符串,这里的^应该表示搜索以main开头的单词;同样也可以用$;
各种代码浏览工具:Comparison with Similar Tools
文档地址:http://www.gnu.org/software/global/globaldoc.html, 包含命令行,emacs,vim 下如何使用等。