GNU GLOBAL 笔记

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 下如何使用等。

你可能感兴趣的:(GNU GLOBAL 笔记)