(本文参考http://www.emacs.cn/Doc/Etags,并根据自己的使用情况做了些微修改。)
1. etags 基本用法
在emacs里可以用etags命令生成emacs专用的tags文件,有了此文件之后便可以使用一些emacs tags的命令,比如对于编辑C/C++程序的人员可以方便的定位一个函数的定义,或者对函数名进行自动补齐:
上述命令可以在当前目录查找所有的.h和.cpp文件并把它们的摘要提取出来做成TAGS文件,具体的etags的用法可以看一下etags的manual。
在.emacs中加入这样的语句:
这样emacs就会自动读取这个tags文件的内容。
几个重要的命令。
- M-. 查找一个tag,比如函数定义类型定义等。
- C-u M-. 查找下一个tag的位置
- M-* 回到上一次运行M-.前的光标位置。
- M-TAB 自动补齐函数名。
2. 参考:一些整合的快捷键
易于编译和TAGS的使用,搜集自 zslevin 的帖子(LinuxForum GNU Emacs/XEmacs)
- C-f5, 设置编译命令
- f5, 保存当前窗口然后编译当前窗口文件
- F7, 查找 TAGS 文件(更新 TAGS 表)
- C-F7, 在当前目录下生成包含所有递归子目录的 TAGS 文件(使用了shell中的find命令)
- C-. 开个小窗查看光标处的 tag
- C-, 只留下当前查看代码的窗口(关闭查看 tag 的小窗)
- M-. 查找光标处的 tag,并跳转
- M-, 跳回原来查找 tag 的地方
- C-M-, 提示要查找的 tag,并跳转
- C-M-. 要匹配的 tag 表达式(系统已定义)
- Shift-Tab, C/C++ 和 lisp 等模式中补全函数名(一般情况下M-Tab被窗口管理器遮屏了)
定义按键,在生成相应 tag 文件时,比如一个目录下所有的 *.cpp 和 *.h 文件使用这样的正则表达式 *.[ch]*,在下面的 C-F7 中可能会用到。
上面定义的命令需要用到的函数: