标准的 GNU etags
不支持目录的递归遍历,就像 exuberant 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,因此您需要更新版本的 etags,它可以从 stdin 读取(请注意行末尾的破折号,它表示 stdin)。当然,如果您使用最新版本的 etags,您也可以使用 dash 参数代替 xargs。
window :
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
关于c++ - 如何使用 shell magic 使用 GNU etags 创建递归 etags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10738219/