大多数的unix系统上都会预装ctags,如果没有可以使用在线安装:sudo apt-get install ctags
生成tags文件
安装成功后,要为源码文件生成tags文件,才可享受ctags为阅读代码带来的便利。$ ctags -R递归的为当前目录及子目录下的所有代码文件生成tags文件为某些源码生成tags文件,使用如下命令$ ctags filename.c filename1.c file.h或$ ctags .c .h 使用tagstag是什么?一个位置。它记录了关于一个标识符在哪里被定义的信息,比如C或C++程序中的一个函数定义。这种tag聚集在一起被放入一个tags文件。这个文件可以让Vim能够从任何位置起跳达到tag所指示的位置-标识符被定义的位置。在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入:set tags=./tags(当前路径下的tags文件) 若要引用多个不同目录的tags文件,可以用逗号隔开 或者设置 ~/.vimrc,加入一行,则不用手动设置tags路径 : set tags=~/path/tags - 若要加入系统函数或全局变量的tag标签,则需执行: ctags -I __THROW –file-scope=yes –langmap=c:+.h –languages=c,c++ –links=yes –c-kinds=+p –fields=+S -R -f ~/.vim/systags /usr/include /usr/local/include 并且在~/.vimrc中添加(亦可用上面描述的手动加入的方式): set tags+=~/.vim/systags 这样,便可以享受系统库函数名补全、原型预览等功能了。 如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加: set tags=tags; set autochdir - CTRL+] 命令会取当前光标下的Word作为tag的名字并直接跳转。这使得在大量C程序中进行探索更容易一些。假设你正看函数”write block”,发现它调用了一个叫”write line”的函数,这个函数是干什么的呢?你可以把光标置于”write_line”上,按下CTRL+]即可。如果”write_line”函数又调用了 “write_char”.你当然又要知道这个函数又是什么功能。同时,置光标于”write_char”上按下CTRL+]。现在你位于函数”write_char”的定义处。 “:tags”命令会列出现在你就已经到过哪些tag了: (ex command):tags 现在往回走。CTRL+T命令会跳到你前一次的tag处。在上例中它会带你到调用了”write_char”的”write_line”函数的地方。CTRL+T可以带一个命令记数, 以此作为往回跳的次数, 你已经向前跳过了,现在正在往回跳,我们再往前跳一次。下面的命令可以直接跳转到当前tag序列的最后: (ex command) :tag 你也可以给它一个前辍, 让它向前跳指定的步长. 比如”:3tag”。CTRL+T也可以带一个前辍。这些命令可以让你向下深入一个函数调用树(使用CTRL+]), 也可以回溯跳转(使用CTRL+T). 还可以随时用”:tags”看你当前的跳转历史记录。ctags中C语言的kind
c classes d macro definitions e enumerators (values inside an enumeration) f function definitions g enumeration names l local variables [off] m class, struct, and union members n namespaces p function PRototypes [off] s structure names t typedefs u union names v variable definitions x external variable declarations [off]
新闻热点
疑难解答