该标准GNU etags
由旺盛的做不支持目录的递归散步ctags -R
。 如果我只获得了GNU的ETag,我该如何使用bash shell的魔法让ETag来产生一个标记表的所有C ++文件*.cpp
和*.h
在当前目录下的文件及以下递归当前的所有目录在其中具有正确的路径名的当前目录下创建一个标签表emacs
来解决TAGS表项。
Answer 1:
在Emacs的维基往往是常见问题的解答或最佳实践的良好来源。 为了您的具体问题有适用于Windows和Unixen两个解决方案:
http://www.emacswiki.org/emacs/RecursiveTags#toc2
基本上你运行一个命令来查找所有.cpp
和所有.h
(如果您使用不同的文件结尾,例如,更改文件选择文件.C
)和管道,结果到的ETag。 由于Windows似乎并不具有xargs的,你需要一个更近,可以从标准输入读取(注意这象征标准输入行末尾的破折号)的ETag的版本。 当然,如果你使用最新的ETag的版本,你可以使用破折号参数,而不是xargs的那里。
Windows系统 :
cd c:\source-root
dir /b /s *.cpp *.h *.hpp | etags --your_options -
Unix的 :
cd /path/to/source-root
find . -name "*.cpp" -print -or -name "*.h" -print | xargs etags --append
Answer 2:
此命令创建的ETag与默认名称“标签”递归立案.C,的.cpp,.CPP,.HPP,.HPP .h文件
find . -regex ".*\.[cChH]\(pp\)?" -print | etags -
Answer 3:
使用发现。 如果你需要的人找到。
文章来源: How to use shell magic to create a recursive etags using GNU etags?