一起talk Vim吧(第十八回:Vim插件之cscope续)

各位看官们,大家好,欢迎大家一起来听大型章回体科技小说 :Vim。上一回咱们介绍了Vim插件中的cscope.

上一回,咱们主要说的是该插件的功能,以及如何安装该插件。这一回,咱们继续说该插件,不过我们说

的是如何使用该插件。好了,还是那句话,闲话休提,言归正转。让我们一起talk Vim吧!

看官们,使用cscope的步骤具体如下:

  • 1.生成数据库文件:

cscope是通过文件列表来生成数据库文件的,因此我们我们先生成一个文件列表。看官们生成文件列表

可以通过查找文件来实现,把查找到的结果整理出来就是一份文件列表。我这么一说,大家都知道使用什

么命令来生成文件列表了吧。“find".恭喜你!答对了。下面是生成文件列表的命令:

find . -name "*.h" -o -name "*.c" > cscope_files

该命令表示在当前目录下查找后缀为.h和.c的文件,并且把查找结果存放到当前目录中的cscope_files

文件中。该命令执行完成后,就可以生成文件列表,接着,我们通过这份文件列表来生成数据库文件。

下面是生成数据库的命令:

cscope -bkq -i cscope_files.

执行该命令后,会在当前目录中生成三个数据库文件:cscope.out、cscope.in.out、cscope.po.out。

  • 2.导入数据库文件:

打开Vim,然后按下冒号进入命令模式,并且执行命令:cs add /dir/cscope.out

这样就把cscope生成的库文件导入到Vim中了。说明一下,刚才命令中的dir表示cscope数据库文件所

在的目录,大家需要依据实际情况输入目录地址。

  • 3.快速定位内容:

定位内容主要通过命令来实现,不同的命令可以定位不同的内容,下面是具体的命令:

定位文件:cs find f name (name表示需要定位文件的名字,以下命令中name的含义相同)

定位字符串:cs find s name

定位变量或者函数定义:cs find g name

定位调用函数名为name的函数:cs find c name

这些命令需要在Vim的命令模式中执行。执行命令后,会在Vim当前窗口下方生成一个窗口,并且在该窗口

中显示命令执行结果,结果前面有行号,通过行号可以知道有多少个结果。在新生成的窗口中操作执行结

果和操作vim一样(如果忘记了,可以回顾一下前面章回中的Vim刀法)。如果想看某个执行结果具体的内

容,可以在命令执行结果的最后一行,也就是提示:Type number and <Enter>(empty cancels):

的地方输入结果前面的行号。比如你想看第5个命令执行结果的详细内容,那么输入5,然后按下回车就会离

开当前所在的窗口跳转到第5个结果所在有文件中。当然了,当前的这个窗口会被关闭,毕竟他是一个临时

用来显示命令执行结果的窗口。

看官们,我们在前一回快结束的时候让大家自己动手试试。有看官和我说,使用起来不顺手,甚至还不知

道怎么使用。我想,通过这回的讲解,大家一定都能明白如何在Vim中使用cscope这个插件了。看官们

可能在刚开始使用的时候觉得不习惯,这是正常的,希望大家多练习。等到熟练以后,你就离 不开他了。

这和Vim一样,刚开始觉得很难用,用熟练了以后就爱不释手。

各位看官,关于Vim的插件:cscope,今天就说到这里为止。在后面的章回中,我们还会说其它的Vim插

件。欲知以后还有什么插件?且听下回分解。

时间: 2024-10-12 17:35:43

一起talk Vim吧(第十八回:Vim插件之cscope续)的相关文章

一起talk C栗子吧(第一百五十八回:C语言实例--基于AF_INET域的流套接字通信)

各位看官们,大家好,上一回中咱们说的是基于AF_UNIX域的数据报套接字通信的例子,这一回咱们说的例子是:基于AF_INET域的流套接字通信 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中一起制作了我们的第二道佳肴是:基于AF_UNIX域的数据报套接字通信.今天,我将和大家一起制作第三道佳肴:基于AF_INET域的流套接字通信. 制作第三道佳肴的菜谱:流套接字过程. 制作第三道佳肴的食材:流套接字的接口,套接字属性,套接字地址信息. 看官们,以上的内容,我们在前面章

一起talk C栗子吧(第十八回:C语言实例--输出十六进制)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是栈的例子,这一回咱们说的例子是:输出十六进制. 看官们,我想熟悉C语言的朋友们,对于输出十六进制的内容,肯定都会使用printf函数进行格式化输出. 不过,有时候想输出十六进制时就会有点"不识庐山真面目,只缘身在此山中"的感觉.我在前面的例子中 有一个关于进制转换的例子.当时输出十六进制时使用分别判断10到15,然后依据判

一起talk C栗子吧(第一百六十八回:C语言实例--C语言中的布尔--bool类型)

各位看官们,大家好,上一回中咱们说的是控制终端字符颜色的例子,这一回咱们说的例子是:C语言中的布尔–bool类型 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,在数字电路中我们经常会遇到布尔类型,其实在编写软件的过程中也会使用布尔类型.布尔类型的变量只有两种值:真和假.在实际的编程过程中,我们经常定义宏,然后使用1表示真,0表示假.下面是具体的例子: #define TRUE 1 #define FALSE 0 例子中定义了两个宏,一个是TRUE,它的值是1,表示真:另外一个是F

一起talk C栗子吧(第一百四十八回:C语言实例--socket通信二)

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了套接字的通信步骤,限于时间的原因, 我们只介绍了流套接字的通信步骤.这一回中我们将介绍数据报套接字的通信步骤. 下面是客户端和服务器端实现通信的详细步骤: 客户端实现通信的步骤: 1.创建客户端套接字(socket): 2.设置客户端套接字的属性:域,类型和协议: 3.通过操作客户端套接字来实现客户端与服务器的通信(sendto,r

一起talk C栗子吧(第八十八回:C语言实例--使用管道进行进程间通信一)

各位看官们,大家好,上一回中咱们说的是使用管道进行进程间通信概述的例子,这一回咱们说的例子是:使用第一种管道进行进程间通信.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在上一回中介绍了三种管道,这一回中我们介绍第一种管道(伪管道)及其使用方法.主要是让大家明白如何使用管道进行进程间的通信. 第一种管道我称之为伪管道.在介绍它之前,我们先介绍两个函数:popen和pclose. popen函数的原型 FILE * popen(const char * command, const ch

一起talk C栗子吧(第三十八回:C语言实例--你了解scanf吗)

各位看官们,大家好,上一回中咱们说的是获取当前日期和时间的例子,这一回咱们说的例子是C语言中的库函数:scanf.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,说到C语言中的库函数:scanf,我想大家都认识它,而且知道它是用来从标准输入中(这里可以当作是终端)获取输入的内容,不过关于该函数的一些小细节,我估计大部分人都不是十分了解,接下来我就把这些小的细节说给大家听. scanf函数有返回值 大家在平常使用scanf函数时,都是为了从终端中获取输入的值,比如:scanf("%d&

一起talk C栗子吧(第二十八回:C语言实例--希尔排序)

各位看官们,大家好,上一回中咱们说的是插入排序的例子,这一回咱们说的例子是:希尔排序.闲话休 提,言归正转.让我们一起talk C栗子吧! 希尔排序是对插入排序的一种改进,希尔排序的原理:先将容器分成若干子容器,然后分别对子容器进行 插入排序,当子容器全部排序完毕后,对全部元素进行一次插入排序. 希尔排序的实现步骤: 1.选取一个增量,增量的大小可以自己定义,其大小在1到容器长度之间: 2.以容器头部到增量位置的元素为起点,从起点到容器尾部依次遍历容器: 3.在步骤2中的遍历过程中,选择一个当前

Linux学习笔记(十八) vim(二)、编辑模式、vim实践练习

一. 编辑模式 命令行模式替换时如果需要替换的字符中有/符号,那么可以将分隔符换成#或者@ :1,100s#/good/weer/#well#g 将前一百行中的/good/weer/替换为well,:nohl 取消搜索时的高亮显示,:x也是保存并退出,但是如果并未改动文件内容,:wq会修改mtimex不会修改mtime vim练习 cp /etc/dnsmasq.conf /tmp/1.txt (1) 分别向下.向右.向左.向上移动6个字符(6j 6l 6h 6k).(2) 分别向下.向上翻两页

Eclipse用法和技巧二十八:Eclipse插件Easy Explore的今世

先说明一下easyexplore插件的功能,easyexplore是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下迅速浏览本地文件系统. 具体可以看图: 前一阵子项目组来了一批新员工,在配置开发环境的时候,发现有的员工可以安装easyexplore插件,有的安装无效.经过分析发现,有的员工用的Eclipse是从Android开发网站上下载的,adt-bundle-windows包里面的,Eclipse的版本是JUNO版本,有的员工的E