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定义的地方
:ta 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 目录下
# unzip taglist_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>