缓冲区浏览器和taglist插件, 就像一个IDE一样. * 可以在Unix和MS-Windows系统中使用
首先请先在你的~/.vimrc文件中添加下面两句: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 此时用vim打开一个c源文件试试: $ vim ~/vim/src/main.c
进入vim后用下面的命令打开taglist窗口, 如图5: :Tlist
(--- 图5 ---)
左边的窗口就是前面介绍的TagList窗口, 其中列出了main.c文件中的tag, 并且按照\VimMain上, 如图中左边红色的方框, 按下回车后, 源程序会自动跳转到VimMain的定义处, 如图中右边的红色方框. 这就是TagList最基本也是最常用的操作. 再教你一个常用的操作, 你在浏览TagList窗口时, 如果还不想让源码跳转, 但是想看看tag在源码中完整的表达, 可以将光标移到你想要看的tag上, 如图中上边黄色的方框, 然后按下空格键, 在下面的命令栏中, 如图下边黄色的方框, 会显示该tag在源码中完整的写法, 而不会跳转到源码处.
TagList插件我就介绍到这里, 其实它还有很多用法和设置, 我没法一一地教你了, 好在
http://blog.csdn.net/wooin?
11
TagList有一份详细的帮助手册, 用下面的命令打开手册, 好好学习一下吧: :help taglist.txt
7. 文件浏览器和窗口管理器 -- 插件: WinManager
下载地址 版本 安装 手册
http://www.vim.org/scripts/script.php?script_id=95 2.x
在 ~/.vim 目录下解压winmanager.zip :help winmanager
在图1中大家可以看到在图标2标识的地方是一个文件浏览器, 里面列出了当前目录中的文件, 可以通过这个浏览器来浏览工程中的源文件, 是不是越来越像常见的IDE了, 当光标停在某个文件或文件夹的时候, 按下回车, 可以打开该文件或文件夹.
这个东东是怎么调出来的呢? 其实这个也是由插件实现的, 这个插件是netrw.vim, 只不过你不用下载和安装, 这个插件已经是标准的vim插件, 已经随vim一起安装进你的系统里了, 现在先简单演示一下, 进入\vim, 然后在vim中运行命令: :e ~/vim71
你将在vim看到如下图所示的界面:
(--- 图6 ---)
在该界面上你可以用下面的一些命令来进行常用的目录和文件操作:
http://blog.csdn.net/wooin?
12
返回上级目录
切换vim 当前工作目录正在浏览的目录 创建目录 删除目录或文件 切换显示方式 文件或目录重命名 选择排序方式
定制浏览方式, 使用你指定的程序打开该文件
我这里不是教你怎么用netrw.vim插件, 而是要教你通过WinManager插件来将TagList窗口和netrw窗口整合起来, 就像图1中的图标2和3组成的那个效果 现在在你的~/.vimrc中增加下面两句
let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle
然后重启vim, 打开~/vim71/src/main.c, 在normal状态下输入\7的样子:
http://blog.csdn.net/wooin?
13
(--- 图7 ---)
其中左上边是netrw窗口, 左下边是TagList窗口, 当再次输入\闭了.
WinManager的功能主要就是我介绍的这些, 但是它还有其他一些高级功能, 还可以支持其他几个插件, 如果你觉得我介绍的还不够你用, 建议你把它的帮助手册好好研究一下, 用下面的命令可以调出帮助手册: :help winmanager
8. Cscope 的使用
这下更厉害了, 用Cscope自己的话说 - \ctags\大程度可见一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的中文帮助手册, 用下面的命令看看介绍吧: :help if_cscop.txt
我在这里简单摘抄一点, 供还在犹豫的朋友看看:
Cscope 是一个交互式的屏幕下使用的工具,用来帮助你:
* 无须在厚厚的程序清单中翻来翻去就可以认识一个 C 程序的工作原理。 * 无须熟悉整个程序就可以知道清楚程序 bug 所要修改的代码位置。 * 检查提议的改动 (如添加一个枚举值) 可能会产生的效果。
http://blog.csdn.net/wooin?
14
* 验证所有的源文件都已经作了需要的修改;例如给某一个现存的函数添加一个参数。 * 在所有相关的源文件中对一个全局变量改名。
* 在所有相关的位置将一个常数改为一个预处理符号。
它被设计用来回答以下的问题: * 什么地方用到了这个符号? * 这是在什么地方定义的? * 这个变量在哪里被赋值? * 这个全局符号的定义在哪里? * 这个函数在源文件中的哪个地方? * 哪些函数调用了这个函数? * 这个函数调用了哪些函数? * 信息 \
* 这个源文件在整个目录结构中处于什么位置? * 哪些文件包含这个头文件?
安装Cscope:
如果你的系统中有cscope命令, 则可以跳过这一小段, 如果没有, 就先跟着我一起安装一个吧.
在Cscope的主页: http://cscope.sourceforge.net 下载一个源码包, 解压后编译安装: # ./configure # make
# make install // 需要root权限
先在~/vimrc中增加一句:
:set cscopequickfix=s-,c-,d-,i-,t-,e-
这个是设定是否使用 quickfix 窗口来显示 cscope 结果, 用法在后面会说到。
跟Ctags一样, 要使用其功能必须先为你的代码生成一个cscope的数据库, 在项目的根目录运行下面的命令:
$ cd /home/wooin/vim71/ $ cscope -Rbq
# 此后会生成三个文件 $ ll cscope.*
-rw-rw-r-- 1 wooin wooin 1.1M 2007-09-30 10:56 cscope.in.out -rw-rw-r-- 1 wooin wooin 6.7M 2007-09-30 10:56 cscope.out -rw-rw-r-- 1 wooin wooin 5.1M 2007-09-30 10:56 cscope.po.out # 打开文件, 开始Coding $ cd src $ vi main.c
进入vim后第一件事是要把刚才生成的cscope文件导入到vim中来, 用下面的命令: :cs add /home/wooin/vim71/cscope.out /home/wooin/vim71 上面这条命令很重要, 必须写全, 不能只写前半句:
http://blog.csdn.net/wooin?
15