etags使用问题——如何使TAGS同时覆盖不同子目录中的文件呢?

scalingbit 2007-09-16 04:16:53
emacs 中使用etags可以产生TAGS文件,用来直接搜索、跳转到函数,但是这个文件只是覆盖了,当前子目录下的文件。很多大的项目中,文件都分布在很多不同的子目录下,如何使TAGS同时覆盖不同子目录中的文件呢?

我查了很多资料,都没有提到这个非常重要的问题。
...全文
550 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
什么呀
scalingbit 2007-09-26
  • 打赏
  • 举报
回复
刚刚etags了一下,TAGS文件大小:162M. 真是变态!
hefuhua 2007-09-26
  • 打赏
  • 举报
回复
我的TAGS大小17M

不过重新切换的时候要M+x命令行先运行
tags-reset-tags-tables
hefuhua 2007-09-19
  • 打赏
  • 举报
回复
楼主不错,我知道用的时候查查,没有系统性的学习,学习还是要转进去:)
scalingbit 2007-09-18
  • 打赏
  • 举报
回复
find . \( -name "*.cpp" -o -name "*.h" -o -name "*.c" \) -print | etags -

这样比较清楚些,可以任选需要的文件类型。看来还是要好好学习一下regular expression。
hefuhua 2007-09-17
  • 打赏
  • 举报
回复
cd /home
find {dir1,dir2} -name "*.[chCHS]" -print ¦ etags -

试试看:)
scalingbit 2007-09-17
  • 打赏
  • 举报
回复
我也看到了你在我发的另一个帖子里的回复,多谢hefuhua!

我对问题没有描述清楚,不好意思:) 假如我有3个不同位置的子目录:/home/dir1/, /usr/dir2/, /usr/dir2/dir3/, 那么如何能够让TAGS文件覆盖这3个子目录里的文件呢?这样无论一个函数的定义文件是在哪个子目录里(我并不确切知道)我都可以通过M-.查找到它的定义。

多谢了!!!
hefuhua 2007-09-16
  • 打赏
  • 举报
回复
如果查内核代码就是
/usr/src/linux# find . -name "*.[chCHS]" -print ¦ etags -
只查.c .h .S 的3类文件

.emacs中加入这样的语句:
(setq tags-file-name /usr/src/linux/TAGS")
这样emacs就会自动读取这个tags文件的内容。

M-. 查找一个tag,比如函数定义类型定义等。
C-u M-. 查找下一个tag的位置
M-* 回到上一次运行M-.前的光标位置。

上面两个都要把光标放到函数名上
M-*返回在emacs任何地方都可以用

18,787

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧