分类:
2008-04-20 07:56:14
配置平台:WindowsXP+gVim7.1
配置目标:在Windows下利用vim构建C开发环境,同时能够完成基本的源码阅读和分析环境。
注意事项:
- 这里没有讲vim的一些配置。如果你还不太熟悉Vi,那先熟悉下再阅读吧。
- 如果你有自己的*X系统,那就在里面进行配制吧,毕竟这些本来是为*X系统而生的。
- 如果你不愿折腾,阅读和分析源码建议使用source insight吧,更易上手,节省时间。
配置原因:
主要是被万恶的GS整惨了,Linux下无法上外网,成天在xp下转悠,而vim的配色很
好看我太喜欢了,忍不住折腾了起来。
功能不及cscope。
可以直接在代码窗口左边或右边列出函数列表,全局参数列表等。
它是一个 C 语言的浏览工具,严格来说不算vim的插件,通过这个工具可以很方便
地找到某个函数或变量的定义位置、被调用的位置等信息。目前共支持33种语言。
cscope 自身带一个基于文本的用户界面,不过 gvim 提供了cscope接口,因此可
以在 gvim 中调用 cscope,方便快捷地浏览源代码。
选自vim文档:“cscope 是一个类似 ctags 的工具。 你可以把它想作是超频过的
ctags,因为它功能比ctags 强大很多。”
cscope 功能比较强大,可以对函数以及部分类型定义进行跳转,可以说cscope是用
来替代 ctags 功能的,但因为 ctags的应用广泛,还有其他很多的软件依赖它。
第三部分 尾注
Step 1 准备工作下载gvim for windows,最新版本7.1(文件大,我不传了,到vim官方网站去下)Step 2 将插件放到安装目录之中
下载ctags4win32和cscope4win32(解压后为exe文件,可以在cmd中运行)
下载taglist.vim cscope_map.vim
这几个文件我放到附件中。
在Vim安装目录C:\Program Files\Vim\底下创建一个文件夹,命名为 VimTags
将上述exe文件放到该目录中(也可直接放到安装的根目录下)
将 taglist.vim 放到插件目录C:\Program Files\Vim\plugin
将 cscope_map.vim 键盘映射插件放到C:\Program Files\Vim\plugin中
Step 3 设置系统环境变量(当然也可在vimrc文件中设置)在系统环境变量path中添加VimTags的路径 C:\Program Files\Vim\VimTags
(添加PATH的时注意格式,先在最后加一分号,再在分号后添加上述路径保存)
=======================使用Ctags + Taglist===========================
Step 4 用ctags创建tags文件进入源码目录运行ctags -R,你会发现在源码目录有一个文件名为tags的文件
文件的大小与源码内容和大小相关。
Step 5 浏览项目文件时,设置所用的tags文件:set tags=F:\..\tags "设置tags选项为当前对应的tags文件为taglist窗口映射快捷键,这样有在启动vim后可以用F3来快速打开和关闭taglist窗口
:TlistOpen打开taglist窗口
:TlistClose关闭taglist窗口
:TlistToggle切换taglist窗口
在vimrc中添加一行代码:map:TlistToggle
========================== 使用cscope ==========================
Step 4 用cscope为源文件创建数据库,生成cscope.out文件命令提示符中进入源码根目录运行cscope -Rkb
(如果没有这一步,使用cscope时会提示没有连接)
Step 5 为源文件添加对应的数据库连接打开编辑文件,vim底行模式,
:cs a F:\...\cscope.out
查看是否已经连接到对应数据库
:cs s
Step 6 使用cscope浏览源码你可以使用vim底行中使用cscope的命令; 也可以应用cscope的键盘映射进行快速操作。
===============================================================
我只是完成了基本的配置,还有更多操作,要想熟练的运用,只有多练习,并看文档和帮助。
在Vim中获取相关帮助::h ctags另外,cscope在Windows下真的不太好使,发现有时加载不了标签数据库(可能是因为路径中文
:h taglist
:h cscope
:cs
件名含有空格的原因),那调用cscope就没什么用了。
两个截图:第一个是本文所使用vim+ctags+taglist浏览源码的截图;
第二个是利用对于大项目文档进行管理浏览的截图(本文未讲述此插件的使用)。
看起来是不是跟Source Insight一样了??你可以把两个图片放到本来的尺寸会看得更清楚:)