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