尝试把vim打造成为IDE

开门见山,本人的环境是ubuntu14.04。计划用ctags和cscope两款工具打造简单的IDE

1. ctags,taglist的安装使用

下面的地址可以找到适合自己的ctags安装版本,我安装的是ctags-5.8

http://ctags.sourceforge.net

解压缩ctags-5.8.tar.gz : $tar -xzf ctags-5.8.tar.gz

$cd ctags-5.8

用vi打开INSTALL,上面有详细的安装说明,根据说明敲以下命令

$./configure                 //为你的系统配置package

$make             //编译这些package

$sudo make install    //开始安装ctags程序

$make clean              //去除安装过程中产生的*.o文件

到源码存放的目录的上层目录执行 $ctags -R命令,如我的执行目录为/wrk/prog/,源码存放于/wrk/prog/src/下。则在/wrk/prog目录下可以看到生成一个tags文件。

安装并编译完tags文件后,还需在.vimrc中写入以下设置

set tags=/wrk/prog/tags

或者打开的vim文件中输入

:set tags=/wrk/prog/tags

此时你就可以在vim文件中使用下面的命令来查看代码了

Ctrl + ]                             //寻找定义的地方

Ctrl + t 或者 Ctrl + o    //返回上一级


但是还可以更进一步,即让vim中显示当前程序的相关信息,那么你就需要安装一个vim插件taglist

在下面的地址中搜taglist关键字,会找到taglist.vim的一个script类型,

http://vim.sourceforge.net/search.php

taglist.vim中可以找到很多版本,我安装了当时最新的一个版本taglist_46.zip。下面是下aglist_46.zip载地址

vim.sourceforge.net/scripts/download_script.php?src_id=19574

解压:$unzip taglist_46.zip

解压之后要把taglist插件安装到vim中:

$sudo cp doc/taglist.txt /usr/share/vim/vim74/doc/

$sudo cp plugin/taglist.vim /usr/share/vim/vim74/plugin/

在打开的程序文件中输入:Tlist。此时VIM就会像sourceinsight一样左边打开一个窗口,显示当前程序的相关信息



2. cscope的安装和使用

如果我们不仅想找到定义的位置,同时还想知道在程序中哪些地方用了该函数,哪些地方对这个变量进行了赋值等等。那么我们就需要安装另外一个工具cscope。

下载并安装:

$sudo apt-get install cscope

如果你是在http://cscope.sourceforge.net/下载,那么就要执行如下几步进行安装

$./configure                 //为你的系统配置package

$make                        //编译这些package

$sudo make install   //开始安装程序

到原始代码的上一层目录,输入生成cscope数据库命令:

$cscope -Rbq

会生成3个cscope相关文件:cscope.in.out,cscope.po.out,cscope.out

下面就要把刚刚生成的cscope.out加入到vim中,把下面的命令写入vimrc中

cs add /wrk/prog/cscope.out /wrk/prog/

或者当你打开vim文件时输入这行命令

:cs add /wrk/prog/cscope.out /wrk/prog/

这样就可以使用cscope了,下面介绍cscope的一些快捷键。我这里喜欢用Ctrl + x作为起始组合键,当然你也可以换成其他的组合键,只要不与其他的组合键冲突就好

nmap <C-x>s :cs find s <C-R>=expand("<cword>")<CR><CR>    "Find this C symbol
nmap <C-x>g :cs find g <C-R>=expand("<cword>")<CR><CR>    "Find this definition
nmap <C-x>c :cs find c <C-R>=expand("<cword>")<CR><CR>    "Find functions calling this function
nmap <C-x>t :cs find t <C-R>=expand("<cword>")<CR><CR>      "Find this text string
nmap <C-x>e :cs find e <C-R>=expand("<cword>")<CR><CR>   "Find this egrep pattern
nmap <C-x>f :cs find f <C-R>=expand("<cfile>")<CR><CR>          "Find this file
nmap <C-x>i :cs find i <C-R>=expand("<cfile>")<CR><CR>          "Find files #including this file
nmap <C-x>d :cs find d <C-R>=expand("<cword>")<CR><CR>    "Find functions called by this function


当然你也可以在下面的地址下载cscope_map.vim,里面有详细的快捷键设置。

http://cscope.sourceforge.net/cscope_maps.vim



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值