VIM配置与使用笔记(三)

cscope可以看做是增强型的ctags,它把基于符号的操作发挥到极值。

使用cscope的工作场景主要包括:


类似ctags,在使用前首先需要建立项目符号数据库。在项目路径下运行:

cscope -Rbq

在当前路径下会生成三个数据库文件:cscope.in.out、cscope.out和cscope.po.out

使用VIM打开源码后需要引入cscope.out文件:

:cs add cscope.out文件的绝对路径 项目顶级目录的绝对路径



然后就可以使用csope提供各类符号处理命令了,比如查找main()函数:

:cs find g main



cscope find的常见命令如下:

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

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



如果感觉命令太长,可以配置VIM使用快捷键代替这一条条长命令。

配置vimrc如下:

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>

以后在VIM中,如果调用 cscope find g查找符号定义,只需要确保光饼定位到该符号上,绕后使用快捷键Ctrl+_+g组合键即可,按键方式为:

先同时按住Ctrl+Shift+_组合键,松开后再快速按g键。

如果感觉目标结果太多挡住了VIM的源码窗口,可以使用cscope的quickfix特性。

首先启用并配置scopequickfix选项:

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



当使用cscope find获取结果后发现此时只在VIM窗口最下面显示一行结果,可以使用cw命令调出quickfix窗口浏览所有结果(可以使用cclose命令关闭):
:cw




转载于:https://my.oschina.net/acmfly/blog/318737

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值