ctags 主要是用来创建 Vim 可以使用的 tag 索引文件的。
一、下载安装
Ubuntu下 执行sudo apt-get install ctags
二、建立索引文件
sudo ctags -R *
然后可以发现该目录下多了一个 tags ,它就是索引文件
三、设置索引文件位置
但是 vim 里现在还不知道 tags 文件的位置,你需要设置一下。
# vi /root/.vimrc
//在文件最后添加 tags 位置
set tags=/home/tarena/project/tags
如果不设置索引文件位置,然后执行 ctrl+] 则会出现错误:
E433: 没有 tag 文件
E426: 找不到 tag: XXXXX
四、使用方法
vi -t tagname 跳转到标签tagname定义的地方
:tags 查看到达当前位置所经过的标签路径
五、跳转快捷键
ctrl+] 跳转至光标所在对象定义之处
ctrl+t 返回跳转前位置
六、其他快捷键
ctrl+g 或者 :f 查看当前文件名和所在行号
shift+8 查找光标所在处的对象
然后按快键键 N 向后查找,按 shift+N 为向前查找
想了解更多,参看:C语言再学习 -- 常用快捷键
七、辅助软件 taglist
taglist 提供了源码的结构化浏览功能,可将源码中定义的类、函数、变量等以树结构显示,层次关系可一目了然,而且于快速定位并查看。前提是必须要安装 ctags。
(1)下载
下载:Click on the package to download.
(2)安装
解压到 ~/.vim 目录下
# unziptaglist_46.zip
进入doc目录 打开 vim 在命令模式下输入 helptags .
可以看到 doc 文件夹下多了一个 tags
这一步的作用是为了导入 taglist.txt 这个帮助文件,那么后面便可以使用 help taglist.txt 来详细查看手册。
比如现在再打开 vim,在命令模式下输入 help taglist.txt,可以看到帮助手册。
到此安装完成。
(3)使用
使用 vim 打开一个文件,然后在命令模式下输入 Tlist,可以看到有如下这种界面了。
关闭界面同样是在命令模式下输入 Tlist
ctrl+ww 切换左右窗口。
在左侧界面选择要跳转的函数,回车即可跳转到右边的函数对应位置
(4)快捷键
taglist窗口中可使用的快捷键:
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样(但要在vimrc文件中打开此项功能) o 在一个新打开的窗口中显示光标下tag <Space> 显示光标下tag的原型定义 u 更新taglist窗口中的tag s 更改排序方式,在按名字排序和按出现顺序排序间切换 x taglist窗口放大和缩小,方便查看较长的tag + 打开一个折叠,同zo - 将tag折叠起来,同zc * 打开所有的折叠,同zR = 将所有tag折叠起来,同zM [[ 跳到前一个文件 ]] 跳到后一个文件 q 关闭taglist窗口 <F1> 显示帮助其他一些设置选项可在vimrc脚本中添加,如:
"设置ctags路径 let Tlist_Ctags_Cmd = '/usr/bin/ctags' "启动vim后自动打开taglist窗口 let Tlist_Auto_Open = 1 "不同时显示多个文件的tag,仅显示一个 let Tlist_Show_One_File = 1 "taglist为最后一个窗口时,退出vim let Tlist_Exit_OnlyWindow = 1 "taglist窗口显示在右侧,缺省为左侧 let Tlist_Use_Right_Window =1 "设置taglist窗口大小 "let Tlist_WinHeight = 100 let Tlist_WinWidth = 40 "设置taglist打开关闭的快捷键F8 noremap <F8> :TlistToggle<CR> "更新ctags标签文件快捷键设置 noremap <F6> :!ctags -R<CR>