为什么 vim -t ctags 不够用?我无法跳转到我想要的功能

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索引?

Xav*_* T. 5

当您使用“ctags -R dirName”时,您只是为目录 dirName 的内容建立索引符号。

发生的事情是在 stdarg.h 中定义了“va_args”,它是 C 标准库的头文件。

每次使用外部库中的符号时,都会遇到相同的问题。

因此,如果您希望所有符号都可用,除了您的程序之外,您还必须索引外部库的代码。

它的意思是 :

  1. 源代码应该可用(情况并非总是如此)

  2. 一旦您在系统上找到文件所在的位置,就应该对其进行解析以包含在您的“标记”文件中。

所以一旦你执行了,ctags -R projectPath你就可以执行ctags -Ra /usr/include将 /usr/include 的所有内容附加到你的标签文件中。

更一般地说,您想要做一些事情,例如ctags -Ra librarySourcePath让程序中使用的所有符号都可用。

编辑:但是要小心:/usr/include 可能包含很多文件,因此文件的大小tag可能会大大增加,因此,每次搜索符号以跳转到它时,速度可能会慢得多!