c – 如何使用shell magic使用GNU etags创建递归etags?

标准GNU etags不支持目录的递归遍历,如繁琐的ctags -R所做.如果我只能访问GNU etags,我如何使用bash shell magic来获取etags为当前目录中的所有C文件* .cpp和* .h文件以及当前目录下的所有目录生成TAGS表在当前目录中创建一个TAGS表,该表具有emacs的正确路径名以解析TAGS表条目.

解决方法:

Emacs Wiki通常是解决常见问题或最佳实践的良好来源.对于您的特定问题,Windows和Unixen都有一个解决方案:

http://www.emacswiki.org/emacs/RecursiveTags#toc2

基本上,您运行一个命令来查找所有.cpp和所有.h文件(如果您使用不同的文件结尾,例如更改文件选择器,例如.C),并将结果传递给etags.由于Windows似乎没有xargs,因此您需要一个可以从stdin读取的更新版本的etags(请注意该行末尾的短划线表示stdin).当然,如果你使用最新版本的etags,你也可以使用dash参数而不是xargs.

视窗:

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
上一篇:Linux概述


下一篇:Knockout应用开发指南 第六章:加载或保存JSON数据