cscope--配合vim使用的一种工具

  最近接触了一种叫cscope的东西。cscope是一种工具,在vim中使用,我们可以通过cscope,在vim中跳转到指定地方(怎么跳,下面会见到介绍)。cscope很类似Source Insight,方便查看函数在定义与调用,这段时间用了一下,因此简单讲讲这个cscope

一、cscope的安装:

1.首先得去cscope官网下一个源码包。百度搜索一下cscope,就可以看到他的官网了,然进入官网的Downloads,将cscope源码下载下来。


2、在Linux下安装cscope
cscope可以在Linux下安装,也可以在Windows下安装,根据个人的需要安装即可。
(1)进入cscope源码目录下:


(2)在cscope源码目录输入如下命令进行安装:

./configure –prefix=/home/Jeffery/cscope/
Make
Make install

(3)添加变量:

export PATH=$PATH:/home/Jeffery/cscope/bin

(4)cscope 配置:
  修改~/.vimrc 文件:去cscope官网或者百度搜索下载cscope_map.vim 配置文件,然后把cscope_map,vim里面从if has("cscope")到endif里边的内容复制到~/.vimrc中去
更具体的安装以及配置cscope,请参考:点击打开链接

二、cscope的使用:

1、首次使用cscope时,建立cscope索引文件:cscope.out、cscope.in.out、 cscope.po.out,输入命令:

cscope -Rbkq

R 表示把所有子目录里的文件也建立索引 
b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库 
q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度 
k在生成索引文件时,不搜索/usr/include目录 

  首次使用Cscope时,他会根据源文件生成符号数据库。然后在以后的使用中,cscope只是在源文件有改动或源文件列表不同时才会重建数据库。当在重建数据库时,未改动过的文件对应的数据库信息会从旧的数据库中拷贝过来,所以会使重建数据库快于一开始的新建数据库。

2、cscope相关命令:
所有的cscope命令都是通过向主cscope命令传递参数选项,缩写是cs。
可以用的缩写有:

add:增加一个新的cscope数据库/链接库

使用方法:
:cs add {file|dir} [pre-path] [flags]


其中:
[pre-path] 就是以-p选项传递给cscope的文件路径,是以相对路径表示的文件前加上的path,这样你不要切换到你数据库文件所在的目录也可以使用它了。
[flags] 你想传递给cscope的额外旗标
 
实例:
:cscope add /home/jeffery/mt6735/cscope.out
:cscope add /home/jeffery/mt6735/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim –C

find:查询cscope。

使用方法:
:cs find {querytype} {name}
其中:
{querytype} 即相对应于实际的cscope行接口数字,同时也相对应于nvi命令:
0或者s   —— 查找这个C符号
1或者g  —— 查找这个定义
2或者d  —— 查找被这个函数调用的函数
3或者c  —— 查找调用这个函数的函数
4或者t   —— 查找这个字符串
6或者e  —— 查找这个egrep匹配模式
7或者f   —— 查找这个文件
8或者i   —— 查找#include这个文件的文件
实例:(#号后为注释)
cscope find c ftpd_send_resp                # 查找所有调用这个函数的函数(们)
:cscope find 3 ftpd_send_resp              # 和上面结果一样
:cscope find 0 FTPD_CHECK_LOGIN      # 查找FTPD_CHECK_LOGIN这个符号

help: cscope帮助信息

使用方法:
:cs help

reset:重新初始化所有的cscope链

使用方法:
:cs reset

show: 显示cscope的链接

使用方法:
:cs show

更多关于cscope的使用方法,请参考:点击打开链接

  最后,cscope只是一种工具,没必要花太多时间去研究它的很多细节,会一些基本的使用,满足自己的工作需求即可,使用其他的工具(比如vim)也是如此。

ps:

  linux 下 vim帮派的三件套:VIM + cscope + Tlist。不过对着大代码弄一个cscope的 out文件,又久又慢啊;而Tlist,年久失修。

  对着大代码弄一个cscope的 out文件,又大又慢啊,out文件size不小,你硬盘大的化就忽略这个。

猜你喜欢

转载自blog.csdn.net/m0_37526672/article/details/80312785