日期:2014-05-16  浏览次数:20593 次

Vim+Ctags+Cscope打造linux下的source insight

最近在linux下写代码,总是要查看定义和调用关系,每次都切换到windows下用source insight实在不方便,于是试水ctags+cscope。

我只希望快速查看变量、结构的定义和函数调用关系,所以用的也简单,省略概念介绍,直接上有用的:

遵照GNU标准,

./configure
make
make install

三步简化 完成安装

ctags和cscope的使用分两步:

1.生成ctags和cscope数据库文件

2.使用命令进行查找和索引等功能

生成ctags数据库文件:

ctags -R

这时,在执行命令的当前目录,产生一个ctags文件,vim打开,查看内容就会明白ctags的原理

生成cscope数据库文件:

cscope -Rbq

在当前目录产生三个文件,cscope.in.out  cscope.out  cscope.po.out

接着需要使用他们的功能进行查找与索引

对于ctags只需记住四个快捷键足够:

:tags {ID}跳转到标签ID处

:tags显示标签栈

CTRL-]跳转到当前光标下的标签处(相当于SI中的CTRL+=)

CTRL-T跳转到标签栈中较早的标签处(相当于SI中的ALT+<)

对于cscope我也只需记住两个命令:

c: 查找调用本函数的函数

d: 查找本函数调用的函数

为使用方便,将cscope的命令在vimrc中添加如下代码:

nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>

使用时,按CTRL+\作为进入命令模式的前缀符,按c则查看调用本函数的函数,按d则查看本函数调用的函数。


另外,笔者是个很懒的人,一下也不愿意多敲

在bashrc中,添加命令别名,以及实现方法:

alias haha='ctags_cscope_func'

ctags_cscope_func() {
    ctags -R
    cscope -Rbq
}
之后source ~/.bashrc

便可通过只输入一次命令haha,完成索引数据库文件的生成了