使用过一些ide比如myeclipse的知道,可以很快速的查找变量、函数的定义,可以列出当前文件中的函数列表并能点击后进入,vim借助ctags和taglist也同样能实现。
一、用好系统自带软件ctags
大部分的unix系统都有ctags软件,它能跟vim很好地合作。
用途:
生成c语言的标签文件,实现相关c文件之间的跳转。
用法:
1.生成标签文件
在当前目录下(运行$提示符后面的命令):
$ctags -R .
-R表示recursive,递归,为当前目录及其子目录中的c文件生成标签文件。最后一个.表示在当前目录,默认会在当前目录。
运行完当前目录会多一个文件tags,就是c标签的索引文件。:
2.跳转
1)用vim打开一个已经建过标签的c文件
2)ctrl+] 找到光标所在位置的标签定义的地方
3)ctrl+t 或者ctrl+o 回到跳转之前的标签处
注意:此时运行vim,必须在"tags"文件所在的目录下运行。否则,运行它会找不到"tags"文件,而需要在vim中用":set tags="命令设定"tags"文件的路径。对于一个稍微大点的项目,你可能在任何一个目录下打开vim,然而在每个目录下都生成一个tags文件并不 是个好主意,那么如何解决呢?方法是在.vimrc中增加一行:
set tags=tags;/
这是告诉vim在当前目录找不到tags文件时请到上层目录查找。
二、taglist:
安装:
下载地址:
http://vim.sourceforge.net/scripts/download_script.php?src_id=6416
解压得到两个文件
# unzip -d taglist taglist_42.zip
# cd taglist
# tree
.
|-- doc
| `-- taglist.txt
`-- plugin
`-- taglist.vim
然后分别将taglist.txt和taglist.vim拷贝到vim的安装目录下的doc和plugin里
用途:
打开后,可以显示源码的整体架构,方便地进行跳转。
用法:
启动vim,用 “:helptags .”来配置好帮助文件
用“:Tlist”来打开和关闭taglist窗口,可以用“:help taglist”来获得更多帮助信息。
即可打开/关闭taglist窗口,如下图,右侧列表便是打开的taglist,列举出了当前文件中定义的类和方法。
一个简单的方法是设定快捷键,在.vimrc中增加一行:
nnoremap <silent> <F8> :TlistToggle<CR>
这样在vim中按F8就可以打开/关闭taglist了。
在taglist窗口中,可以使用下面的快捷键:
回车 跳到光标下tag所定义的位置
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
更多的配置可以再.vimrc 里设置,下图是我的一个简单配置