配置ctags跳转库函数

发布时间 2023-09-15 08:47:56作者: BuzzWeek
  1. 使用系统提供的标准头文件:
    在你的ctags命令中,添加标准头文件所在的目录,例如:
ctags -R --extras=+q --langmap=c:.c.h --c-kinds=+p --fields=+S *.c /usr/include /usr/local/include

这个命令会生成一个标签文件,其中包含了库函数的定义。

  1. 添加其他外部库:
    如果你使用了其他的库,你可以使用-I选项指定库文件的路径,例如:
ctags -R --extras=+q --langmap=c:.c.h --c-kinds=+p --fields=+S *.c -I mylib_folder

这个命令将递归处理当前目录下的所有.c文件,并包含mylib_folder中的库函数定义。

  1. 使用已经存在的标签文件:
    如果你已经有了包含库函数定义的标签文件,你可以通过使用-a选项将这些标签追加到现有的标签文件中,例如:
ctags -R --extras=+q --langmap=c:.c.h --c-kinds=+p --fields=+S -a mytags

这个命令将会读取mytags文件中已有的标签,并将新的库函数标签追加到其中。

通过这些配置,你就可以在编辑器中使用ctags进行库函数的跳转了。具体操作方式取决于你使用的编辑器,通常可以使用Ctrl+]或类似的快捷键进行跳转到定义或查找标签。请注意,在使用ctags跳转库函数时,确保你的标签文件包含了所需的库函数定义。

ctags参数含义

-R:表示递归处理子目录中的文件。它会遍历指定目录及其子目录中的文件,并生成相应的标签。

--extras=+q:指定生成标签时的额外选项。在这里,q表示启用安静模式,即在生成标签的过程中不显示处理的文件列表。

--langmap=c:.c.h:定义语言映射。这里使用c:.c.h表示将.c和.h文件视为C语言源文件,以便正确地解析和生成标签。

--c-kinds=+p:确定要包含的C语言符号类型。p表示函数原型(函数声明)应包含在生成的标签中。

-f ~/.vim/systags:指定将生成的标签文件保存到 ~/.vim/systags。

-a:追加现有标签文件。使用此选项可以将新的标签追加到已存在的标签文件中,而不是覆盖原有的标签文件。

--fields=+S:指定要包含在标签文件中的字段。S表示函数所在的文件路径应该包含在生成的标签中。

--fields=+iaS:指定要包含在标签文件中的字段。具体含义如下:
i:包含函数、方法的签名。
a:包含函数所在的类或结构体。
S:包含函数所在的文件路径。