使用Vim打造IDE--Cscope

vim+cscope+ctags打造属于自己的IDE 所谓工欲善其事,必先利其器。作为专业码农,特别是长期在Unix系统上展开工作(查看源代码、coding)的码农,没有一个极致的IDE环境,工作效率会很受影响的。当然啥时候Unix系统如果有Visual Studio这样牛X的IDE,相信很多人会很开心。但生活是残酷的,我们总得自己丰衣足食,下面介绍一下,我在ubuntu12.04上使用vim+cscope+ctags搭建的IDE。 阅读详情

原文:

http://blog.youkuaiyun.com/wooin/archive/2007/10/31/1858917.aspx

偶的贡献是整理成符合自己格式的~

 

可以使用Cscope完成如下功能:

 

查看一个函数在哪里被调用

查看变量在哪里被使用

查看一个函数调用了哪些函数

检查改动,例如增加一个枚举,会产生什么影响

检查所有的地方都进行了相应修改,例如给一个函数增加参数

在所有文件中对一个全局变量进行改名

源文件在目录中的位置

哪些文件包含这个头文件

 

Cscope地址:

http://cscope.sourceforge.net

 

解压后编译安装:

# ./configure
# make
# make install     

 

 

 

之后,在~/vimrc中增加如下一行:

 

:set cscopequickfix=s-,c-,d-,i-,t-,e-

 

这个用以设定是否使用quickfix 窗口来显示cscope的结果,quickfix请参看另一篇文章。


与Ctags类似,要使用Cscope必须先为源代码生成一个cscope数据库,。

在项目的根目录运行下面的命令:

# cd /home/zebra/myprogram/src
# cscope -Rbq
# 这样会生成三个文件
# 打开文件, 开始Coding
# cd src
# vi mymain.c

 

进入vim后需要把生成的cscope文件导入到vim中来,用下面的命令:

 

:cs add /home/zebra/myprogram/src/cscope.out  /home/zebra/myprogram/src

 

必须把两级中的cscope文件都加入。因为源码是多级目录的,仅仅具有前一个,cscope无法在子目录的源码中正确工作。

当然,如果你的源码都在同一级目录中就没关系了。

 

如果经常用cscope,可以把上述加入到~/.vimrc。

 

 

其一般使用如下:

 

:cs find g mymain 查看跳转到定义处

 

:cs find g mymain 查看引用情况,按下回车则调转到第一个引用处。

 

如果对跳转结果不满意,使用:

 

:cw  打开quickfix窗口进行挑选。

 

 

cscope的主要功能是通过子命令"find"实现。

 

 cs find c|d|e|f|g|i|s|t name

0 或 s查找本 C 符号(可以跳过注释)
1 或 g查找本定义
2 或 d查找本函数调用的函数
3 或 c查找调用本函数的函数
4 或 t查找本字符串
6 或 e查找本 egrep 模式
7 或 f查找本文件
8 或 i查找包含本文件的文件

 

 

查找都要输入长串命令的话非常不方便,Cscope的帮助手册中推荐了一些快捷键的用法。

 

下面是其中一组,也是常用的。

 

将下面的内容添加到~/.vimrc中, 并重启vim即可:


nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>

 

这样,当光标停在某个你要查找的词时, 按下<C-_>g,就会跳转到该对象的定义。其它的类似。


按这种组合键有一点技巧,按了<C-_>后要马上按下一个键,否则屏幕一闪就回到nomal状态,可以如下解决:
<C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"。

 

 

使用reset重新初始化所有连接 ,用法:

 

cs reset

VIM IDE and CSCOPE 配置 进入工程/ #CSPOSE #gvim . 即可使用 立即下载

相关推荐

VIM IDE and CSCOPE 配置(修改版本)

添加supertab功能(个人做了写修改tab与C-n合并)和(C语言函数补全功能)) 右键加入脚本方便实现beyond compare 功能

超详细的vim+cscope 的使用规则 转载

写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE.但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了,"工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了,我

5万+

后向投影算法(BPA)-SAR成像算法系列(二)

SAR成像算法:后向投影算法(BPA)原理介绍及实现步骤解析。

yjh_2019的博客 1万+

Cscope的使用(领略Vim + Cscope的强大魅力)

Cscope的使用(领略Vim + Cscope的强大魅力)1、Cscope介绍       Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事。在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标签;她能够保存标签栈,所以通过合适的键盘映射绑定,你能够在函数向后或向前跳转,就像通常使用的tags一样。       首次使用Cscope时,他会根据源文件生成符号数据库。然后在以后的使用中,cscope只是在源文件有改动或源文件列表不同

音视频之路 11万+

基于FME—三调篇—尖锐角及小缝隙处理

1 问题分析: 该功能实现在FME较为简单,相对ARCGIS模型构建器以及ARCGIS ENGINE,FME更适合无代码基础的人群。在三调内业数据处理要求中,尖锐角是不允许存在的。本文基于FME实现了对尖锐角的自动查询与消除以及自动处理在消除尖锐角过程中产生的缝隙,并进行了拓扑检查,实现自动化批量处理尖锐角的功能,提高工作效率。 2 总体思路: 2.1 实现功能分析: 1.找出小于指定角度的尖锐角...

qq_33315579的博客 9179

(入门向)在Ubuntu22.04.3安装Matlab2021b,以及无法安装在当前目录下的解决办法(见最后)

还有这个/usr/local是只读状态,我试过sudo chmod..去改那个文件的读,结果还是安装不了,我不是这个默认路径,因为它文件夹还是只读,于是我在matlab2021b下创了一个bin,并选上。输入完成后,依次按y,因为里面有三个文件,他会让你确定3次密码,直接yyy跳过即可。你可能会遇到装不下的情况,这个软件占30g,可是你分配给虚拟机就剩10g。,于是我去Downloads下建了一个matlab2021b文件夹,果然好使,3).此时,会提示你输入密码,因为这个rar是有密码的,

harrype的博客 7282

[Vim笔记]将vim打造成IDE

1. 字体,色彩背景设置 $ vi ~/.vimrc ” set font and color if has(“gui_running”)     set guifont=Courier\ 10\ Pitch\ 12     “set gfw=幼圆:h12:cGB2312     colorscheme koehler endif 2. ctags     查询变量、函数的定

androidstar_cn的博客 377

MTK平台Wi-Fi学习--wifi channel 通过国家码进行功率限制和wifi eFEM 基本配置和wifi Tx SEM问题

本文介绍了WiFi功率限制配置和eFEM硬件设置方法。在功率限制方面,通过国家码可针对不同信道设置功率上限,需在rlm_txpwr_init.h文件中配置信道和功率值(单位0.5dBm),WiFi6的HE_TB模式还可分RU设置。eFEM硬件配置需参考平台设计,注意VDET接口处理,首次使用建议提交HW/SW案例审核。软件配置需获取专用FEM包,包含NVRAM、GPIO等文件,按指导合并后版本才会切换为eFEM版本。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 482

re_learn: vim , cscope E567: no cscope connections

现象及原因: 运行之前写的自动生成tag的脚本居然报错,,, 因为新环境没安装cscope vim+cscope+ctags打造属于自己的IDE

hunter 368

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 266

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1162

vim 学习总结

用vim 也有段时间了一直只用了一些基本的操作,也没细细研究VIM 的强大功能。 现在总结一下吧: $ vimtutor 可以查看一个入门级别的Guide,新手入门的话还是必读的,学习知识就是这样看别人的博客也好,听别人说也好都是二手的,原作者辛辛苦苦操刀写的Guide 和学习方法一定要看看,这样学习起来就快多了。 光标停在一个局部变量上,输入gd 可以直接跳转到该变量定义的

875

Python爬虫博客:爬取碳排放交易数据——使用最新技术的完整实现

通过上述方法,我们可以构建一个高效的爬虫,爬取碳排放交易市场的数据并进行分析。这个项目不仅展示了如何处理静态和动态网页,还提供了如何存储数据、分析数据和可视化结果的技巧。随着爬虫技术的不断进步,我们可以进一步提升爬取效率和数据分析能力。如果你希望更深入了解如何进行数据挖掘和机器学习分析,可以尝试将碳排放数据与其他经济数据结合,利用机器学习模型进行趋势预测或决策支持。

2201_76125261的博客 350

手把手教你把Vim改装成一个IDE编程环境(图文)

手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage: http://blog.youkuaiyun.com/wooin Copyright: 该文章版权由吴垠和他可爱的老婆小包子所有

wocjj的专栏 588

大数据学习指南从入门到精通

利用框架的力量,看懂游戏规则,才是入行的前提大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾选择才是拉差距关键,风向,比你流的汗水重要一万倍,逆风划船要累死人的为什么选择学习大数据开发,不选择Java开发?借棋弈做比喻,智商高的不要选择五子琪,要选择围棋,它能长久地吸引你。不都是在棋盘上一颗黑子一颗白子地下吗?因为围棋更复杂,能够掌握如此复杂的技艺、产生稳定输出的棋手、让我们更佩服。选择学习大数据开发也如此,能让你的职业生涯走得更远,少走弯路。

Lansonli(蓝深李)的博客 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vim配置及插件安装管理(超级详细)

1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了

CareChere的博客 757

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

手把手教你把Vim改装成一个IDE编程环境

手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage: http://blog.youkuaiyun.com/wooin Copyright: 该文章版权由吴垠和他可爱的老婆小包子所有

gaoxing01的专栏 665

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 使用Vim打造IDE--WinManager
下一篇: 使用Vim打造IDE--quickfix窗口
IterZebra
博客等级 码龄16年 56粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值