在新安装的OracleSolaris上,我有来自base-developer-utilities
包的ctags。它不支持递归,所以我生成标签如下:
% cd my_sources; rm -f tags; touch tags
% find . -name '*.c' -o -name '*.h' -exec ctags -v -u {} \;
标签已生成,但由于某些原因,vim无法理解它,即它只是没有看到任何标记,尽管我添加了set tags
,而是报告错误E426: tag not found
。
标签文件中的标签是。
有人知道可能出现什么问题吗?感谢。
答案 0 :(得分:1)
如果vi
抱怨标签不在那里,那就是因为它可能不是。您可以通过使用文本编辑器打开标记文件并进行搜索来确认。
但之所以不存在是因为你要覆盖每个文件find
遇到的标签文件的内容,所以它应该只包含最后一个文件的标签。要解决此问题,您可以添加-a
参数,该参数根据其man page提供。
作为替代方法,您可以尝试从源代码编译更新的ctags,以便使用带有-R --languages=c
参数的递归模式。如果您决定从源代码编译,我建议您使用universal-ctags。