Emacs之GNU GLOBAL

安装

去GNU GLOBAL官方网站上去下载最新版软件,在适当的地方解压软件。

1
2
3
$ mv ~/Download/global-6.5.7.tar.gz ~/src
$ cd ~/src
$ tar svfz global-6.5.7.tar.gz

解压之后进入解压出来的文件夹,进行安装。

1
2
3
4
$ cd global-6.5.7
$ ./configure
$ make
$ sudo make install

确认安装

1
2
3
4
5
6
$ global --version
global (GNU GLOBAL) 6.5.7
Copyright (c) 2016 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

出现类似的版本信息就代表安装成功了。

配置

在emacs中使用之前还要做一些配置。将gtags.el文件复制到.emacs.d/中。

1
2
$ mkdir -p ~/.emacs.d/site-lisp
$ cp ~/src/global-6.5.7/gtags.el ~/.emacs.d/site-lisp

接着在inti.el文件中加入以下设定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
;; GNU GLOBAL
(add-to-list 'load-path "~/.emacs.d/site-lisp")
(require 'gtags)
(autoload 'gtags-mode "gtags" "" t)
(add-hook 'c-mode-hook
'(lambda ()
(gtags-mode 1)))
;; Keybindings
(define-key gtags-mode-map (kbd "M-t") 'gtags-find-tag)
(define-key gtags-mode-map (kbd "M-r") 'gtags-find-rtag)
(define-key gtags-mode-map (kbd "M-s") 'gtags-find-symbol)
(define-key gtags-mode-map (kbd "C-t") 'gtags-pop-stack)
;; Customization
(setq gtags-suggested-key-mapping t)
(setq gtags-auto-update t)

使用

emacs重新启动,在工程文件夹中使用gtags命令。生成GPATH,GRTAGS,GTAGS三个文件。

1
2
3
$ cd ~/somewhere/project
$ ls
project.c GPATH GRTAGS GTAGS include makefile src

emacs中用光标指向想要查找的函数,M-tEnter就可以跳转到函数的定义部分。在这个状态下,使用C-t就可以返回原来的位置。