ctags -R dirName, vim -t tags 很强大,因为在这两个命令之后,你现在可以在那个项目的代码之间导航,例如你可以使用:tag functionName直接跳转到某个函数的代码,但是这个操作仍然有一些缺陷,通常一个源代码可以包含一些函数调用,例如 va_start(),而这个代码不包含在 dirName 目录中,所以没有为这个函数生成索引,你不能导航到 va_start() 的定义,但是需要导航到这个函数吗?如何找到该代码?我什至不知道 va_start() 的确切定义在哪里。如何为系统功能或第三方功能生成 ctags 索引?
问问题
913 次
1 回答
5
当您使用“ctags -R dirName”时,您只是为目录 dirName 的内容编制索引符号。
发生的情况是“va_args”在 stdarg.h 中定义,它是 C 标准库的头文件。
每次使用外部库中的符号时都会遇到同样的问题。
因此,如果您想让所有符号都可用,除了您的程序之外,您还可以索引外部库的代码。
它的意思是 :
源代码应该可用(并非总是如此)
一旦您在系统上找到文件所在的位置,就应该将其解析为包含在您的“标记”文件中。
因此,一旦您执行了ctags -R projectPath
,您就可以执行ctags -Ra /usr/include
将 /usr/include 的所有内容附加到您的标记文件中。
更一般地说,您想做一些事情,比如ctags -Ra librarySourcePath
让程序中使用的所有符号都可用。
编辑:但是要小心:/usr/include 可能包含很多文件,因此文件的大小tag
会大大增加,因此,每次搜索要跳转到它的符号时,它可能会慢得多!
于 2012-02-17T09:36:28.553 回答