1

在新安装的 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

标签标签文件中。

有人知道它可能有什么问题吗?谢谢。

4

1 回答 1

1

如果vi抱怨标签不存在,那是因为它可能不存在。您可以通过使用文本编辑器打开标签文件并搜索它来确认这一点。

但它不存在的原因是因为您正在覆盖每个文件find遇到的标签文件的内容,所以它应该只包含最后一个文件的标签。要克服这个问题,您可以添加-a参数,该参数可根据其手册页获得。

作为替代方案,您可以尝试从源代码编译更新的 ctags,以便使用带有-R --languages=c参数的递归模式。如果您决定从源代码编译,我建议您使用Universal-ctags

于 2015-07-17T00:59:48.873 回答