etags - HPECLab/tutorials GitHub Wiki
#Etags 使用说明
Author: YJ
##1.Tags File
tag file 是源代码里函数定义,变量等得索引,若你想为工程创立索引,emacs可以利用tags快速地找到索引的定义,首先你的生成索引文件,etags可以识别多种语言源文件如c,c++,lisps,perl等
以下指令用于创建emacslisp文件的索引文件
rm -f TAGS
etags .el
下面指令用于当前目录及其子目录下.c
和.h
的索引文件
rm -rf TAGS
find . -naem ".[ch]" -print | xargs etags -a // -a 表示附加到索引文件里
sure-tags.el是个不错的插件。
##2.常用的tags命令如下
'M-.'(find-tag) 查找tag,如果有多个满足的tag,M-.
会跳到下一个tag
'M-x find-tag-other-window' 在新窗口显示tag
'M- pop-tag-mark' 调回入口
'M-x tags-search' 使用正则表达式查找tag
'M-x tags-query-replace' 对标签索引的内容进行重命名
'M,'(tags-loop-continue) 重复tags-search 和tags-query-replace 的使用,完成全部查找和替换
'M-x tags-apropos' 列出与正则表达式匹配的所有tags
'M-x list-tags' 列出文件中定义的所有标签
注:find-tag-other-window 查看tag时,光标会跳转至查找到的tag处,通过以下脚本可以使用view-tag-other-window 使光标不跳转
;;; View tags other window
(defun view-tag-other-window (tagname &optional next-p regexp-p)
"Same as `find-tag-other-window' but doesn't move the point"
(interactive (find-tag-interactive "View tag other window: "))
(let ((window (get-buffer-window)))
(find-tag-other-window tagname next-p regexp-p)
(recenter 0)
(select-window window)))