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)))