通常情况下,程序员在日常工作中打开的不可能只有一份文件——想想Java的package和class,C、C++的header files,还有.Net C#的partial class就会赞同这个观点。VIM这种强悍的编辑器自然充分考虑到程序员的需求 —— move around quickly。
VIM支持CTAGS程序,这是一个独立的程序,大多数Unix/Linux系统都安装了它的实现。只需要在$VIM/plugin中安装 taglist 插件即可借助于ctag的威力对所有文件进行tag的索引。值得一提的是,ctag本身在不同系统上的实现是可能有所不同的,推荐使用的是source forge上的开源项目 exuberant ctags。
C:\Program Files\GNU>ctags --version
Exuberant Ctags 5.5.4, Copyright (C) 1996-2003 Darren Hiebert
Compiled: Mar 29 2004, 22:21:09
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +win32, +regex, +internal-sort
安装了CTAGS程序之后,可以在系统变量path中加入该程序的路径,比较方便。如果不加入path,则需要在vim中加入配置行:
let Tlist_Ctags_Cmd='C:\Program Files\GNU\ctags.exe'
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
使用taglist的第一步,就是调用CTAGS程序生成tag list。
> ctags.exe $SRC\*.cpp $SRC\*.h
如果需要针对给定目录下的所有代码文件都生成tag,可以采用:
> ctags.exe -R $SRC\*.java
生成的tags文件就是所谓的tag list(标签列表文件)。VIM可以通过这个文件来查找任何一个标签被定义的位置并跳转。
如果知道一个标签的名字,可以通过命令
:tag <target_name>
查找到这个标签对应的函数或是变量。
更加方便的方法是将光标停在某个标签名字上,按键 Ctrl-] 跳转到定义处。在多次跳转之后,如果需要查看“途经”的标签列表,只要调用命令
:tags
这个命令会显示一个列表,告诉用户当前的跳转共经过了哪些标签。如果需要向回跳转,只要使用按键 Ctrl-T 即可。
评论