(1)ctags的安装
到 http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz下载ctags源码 解压并安装,./configure,make,make install; (2)taglist安装
taglist插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。taglist基于ctags才能发挥作用,因此在使用taglist之前,确保已经安装了ctags。具体安装方法如下:
下载地址(两个可选择任意一个):
Official site http://vim-taglist.sourceforge.net/
VIM online http://www.vim.org/scripts/script.php?script_id=273
下载解压后,将插件脚本文件plugin和帮助文件doc分别放入vim常用目录:$HOME/.vim/ 或$HOME/vimfiles/ 或$VIM/vimfiles/下
下载地址(两个可选择任意一个):
(3)ctags的使用
1.对于一个工程文件夹建立ctags文件:在该目录下运行 ctags -R "-R"表示递归创建,也就包括源代码根目录下的任何子目录下的源程式(如果你的源码是多层的目录, 就去最上层的目录)。从而在src目录下建立了一个“tags”文件,"tags"文档中包括这些对象的列表。如果修改程序后,比如增加了函数定义,删除了变量定义,tags文件不能自动rebuild,必须再次在当前"tags"文件所在的目录下运行 $ctags -R。2.快捷键:把光标移到变量名或函数名上,然后按下"Ctrl-]"前往该变量名函数名定义处。用"Ctrl-o"或“Ctrl-t”退回原来的地方。<2> 在函数中移动光标
[{ 转到上一个位于第一列的"{"
}] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行 ([ and ] 也分别是两个指令)
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方 错误解决: (1)顶层目录下已经有了tags;
报错:cstag:tag not found
这是因为源文件在当前目录下没有找到tags文件,
解决办法是在在vim的配置文件~/vimrc添加set tags=tags;或者set tags=(tags文件的路径)
(2)E432:Tags file not sorted 其实这个问题实际上是由于在使用ctags -R命令时,就已经报错Tags file not sorted,这个错误附带的提示是根目录空间不够,我的解决方法是,由于生成的临时文件是在/tmp目录下,所以我将/tmp目录绑定到了一块新的分区中,解决的该问题。 不过,在这一过程中,我看到当源代码稍大时(80M),生成的tag文件相当的大(3.1G),生成了最多8到9个临时文件,每个文件500M,可见catgs还是相当占用空间的。(4)taglist的使用
1.切换函数列表的开、关
使用 “:TlistToggle” 在打开和关闭间切换。
可以用 “:TlistOpen” 打开taglist窗口,用“:TlistClose”关闭taglist窗口。
在vimrc中使用如下面的映射,就可以使用 “,tl” 键就可以打开/关闭taglist窗口:map tl :TlistToogle
2.在正常编辑区域和tags区域中切换
ctrl+w+w3.定位指定内容
在tags区域中,把光标移动到变量、函数名称上,然后敲回车(或者是双击某个tag),就会自动在正常编辑区域中定位到指定内容了。 在taglist窗口中,可以使用下面的快捷键 : 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样o 在一个新打开的窗口中显示光标下tag
(空格) 显示光标下的tag的原型定义,在vim
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
显示帮助。Taglist插件还提供了很多Ex命令,甚至可以用这些命令创建一个taglist的会话,然后在下次进入VIM时加载此会话。
我们在关联一个函数或者一个变量定义的时候,经常有多处地方定义了相同名字,需要定位正确的定义地方。
:ts 或 tselect 查看有相同地方的定义
:tn或tnext 查找下一个定义地方。
:tp 查找上一个地方。
:tfirst 到第一个匹配
:tlast 到最后一个匹配