emacs中etags等的使用
来源:互联网 发布:mac上什么输入法好用 编辑:程序博客网 时间:2024/04/28 08:42
在windows下常用的源代码查看工具是Source Inside。在linux下我习惯用用etags、gtags、grep来查看源代码。
etags用于生成TAGS文件来提供emacs快速浏览C/C++源代码,它的最大作用就是能够快速跳转到函数定义、宏定义、数据结构定义、全局变量定义等。
etags常常和find命令一同使用来生成TAGS文件,如下所示:
find . -name '*.[ch]' | xargs etags -a
etags常用命令:
M-visit-tags-table:选择生成TAGS文件,
M-tags-reset-tags-tables:重新设置tag table
M-. 查找一个tag,比如函数定义类型定义等。
C-u M-. 查找下一个tag的位置
M-* 回到上一次运行M-.前的光标位置。
.emacs中加入这样的语句:
(setq tags-file-name /usr/src/linux/TAGS")
这样emacs就会自动读取这个tags文件的内容。
对于一些project,makefile里已经做好了这一步,例如对工程glibc,执行make -f MakeTAGS
有了etags,为什么还要gtags?
你可能会遇到这样的情况:有一个函数myfunction,在工程的源代码里被调用了十几次,你想把 它们都找出来,这时候,etags只能找到它的定义,并不能找到它的调用。而使用gtags就能够实现这样的功能(当然,还有很多的办法)。
要使用gtags,首先要装global包:
apt-get install global
接着在project是目录下执行:
gtags
你会发现在当前目录多了几个文件:GPATH、GRTAGS、GSYMS、GTAGS。它们就是用于在源文件之间快速跳转。
在emacs里进入到gtags模式,执行“M-x gtags-mode”。
这样就可以使用“gtags-find-pattern”和“gtags-find-symbol”来查找函数调用和声明以及符号声明。
cscope
cscope只针对C语言。
sudo apt-get install cscope
在.emacs里加入这一句:
(require 'xcscope)
在工程的目录里设置cscope的工作目录,并在该目录下生成cscope.file和scope.out文件:
M-x cscope-set-initial-directory
M-x cscope-create-list-of-files-to-index
好了,如果要找一个符号的定义,那么就执行:
M-x cscope-find-global-definition
找调用某个函数的函数,执行:
M-x cscope-find-functions-calling-this-function
C-c s C-h 能找到更多关系cscope的命令。
grep也是一个很好的代码查找工具。例如在一个工程里查找函数名就schedule的函数的定义以及引用,
grep -n -e schedule -r --include=*.[hc] .
如图所示:
小结:
配合使用etags的“find-tag”(也就是M-.)命令和gtags的“gtags-find-symbol”命令、rgrep命令,能够更方便、快捷地查找源代码。
- emacs中etags等的使用
- emacs 中使用etags
- Emacs中使用etags
- Emacs里面使用etags
- emacs里使用etags
- 在Emacs中使用etags来浏览代码
- 在Emacs中使用etags来浏览代码
- 在Emacs中使用etags来浏览代码
- emacs 使用积累5.3 etags
- emacs 使用 etags 阅读代码
- emacs + etags
- emacs etags
- emacs+etags 阅读代码
- Windows+Emacs+Etags
- emacs TAGS etags
- emacs之行六-使用etags创建TAGS文件
- emacs中markmode的使用
- emacs + etags + cscope + ecb阅读代码
- IBM如何面试
- C语言回调函数学习
- 哈佛大学图书馆凌晨四点的景象
- 有兴趣的兄弟姐妹请帮我优化一下这个程序
- Microsoft Office Professional Plus 2007的安装与破解
- emacs中etags等的使用
- Java线程:新特征-条件变量
- [双语阅读]“老虎”伍兹遭车祸 称责任在自己
- 获得副屏幕坐标位置
- 2009最新经典爱情短信收藏
- Extjs2.0的HTMLEditor的扩展(上传图片)
- 今天预示着之前5个月的努力告一段落
- 仅仅如此
- 对C#中关键字的整理