ctags -R dirName,vim -t标签非常强大,因为在这两个命令之后,您现在可以在该项目的代码之间导航,例如您可以使用以下命令跳转到某个函数的代码: tag functionName,但是这个操作仍有一些缺陷,通常情况下一个源代码可能包含一些函数调用,如va_start(),而这个代码不包含在dirName目录中,因此不为此函数生成索引,并且您无法导航到va_start()的定义,但是需要导航到此函数?如何找到该代码?我甚至不知道va_start()的确切位置。如何为系统功能或第三方功能生成ctags索引?
答案 0 :(得分:4)
当你使用" ctags -R dirName"您只是为目录dirName的内容索引符号。
那会发生什么" va_args"在stdarg.h中定义,它是C标准库的标题。
每次您使用外部库中的符号时,您都会遇到同样的问题。
因此,如果您希望所有符号都可用,除了程序之外,您还可以索引外部库的代码。
这意味着:
源代码应该可用(情况并非总是如此)
在您的系统中找到该文件后,应将其解析为包含在您的"标记"文件
因此,执行ctags -R projectPath
后,您可以执行ctags -Ra /usr/include
将/ usr / include的所有内容附加到您的代码文件中。
更一般地说,您希望执行类似ctags -Ra librarySourcePath
的操作,以使您的程序中使用的所有符号都可用。
编辑:
但请注意:/ usr / include可能包含大量文件,因此您tag
文件的大小可能会大大增加,因此,每当您搜索符号跳转到它时,它可能要慢得多!