[VIM] 插件之cscope详解

本文详细介绍了VIM插件cscope的使用,包括如何创建数据库、使用各种命令,如查找函数调用、定义、文件和文本字符串,以及如何配置quickfix窗口和与其他工具如ctags结合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cscope 详解

创建数据库

$ cscope -Rbq
  • -b:仅构建交叉引用(cross-reference)文件,然后退出,不会进入下面的交互界面:
  • -q:通过倒排索引加速符号的查找过程。该选项会导致cscope额外产生cscope.in.out和cscope.po.out两个文件
  • -k: 在生成索引文件时,不搜索/usr/include目录
  • -u: 扫描所有文件,重新生成交叉索引文件
  • -I dir: 在-I选项指出的目录中查找头文件

命令

  • :cs add cscope.out 添加一个新的数据库
  • :cs find 查询一个模式(Usage: find c|d|e|f|g|i|s|t name)
    c: Find functions calling this function 调用本函数的函数
    d: Find functions called by this function 本函数调用的函数
    e: Find this egrep pattern 查找egrep模式
    f: Find this file 查找文件
    g: Find this definition 查询定义,类似ctags
    i: Find files #including this file 查找include文件
    s: Find this C symbol 查询C符合,函数/枚举/宏
    t: Find this text string 查找指定字符串
  • g 可以跳到函数定义;Ctrl-t可以返回
  • :cs find f g do_fork 查找do_fork定义并打开该文件

quickfix窗口配置

  • set cscopequickfix=s-,c-,d-,i-,t-,e-
    • 搜索结果quickfix窗口显示;s/c/d/i/t/e查找模式有效
    • +(将结果追加到quickfix窗口)、-(清空上一次的结果)
  • 好处是,可以在搜索结果的多个匹配项间进行跳转,而位置列表的方式则只能选择一个项
  • quickfix窗口命令
    • :cn 下一个
    • :cp 上一个
    • :cr 第一个
    • :cla 最后一个
    • :clist 所有项

其他配置

  • set csprg=/usr/bin/cscope
  • set csto=1 " tags优先查找,0则反之
  • set cst " 同时使用tags
  • set nocsverb " 增加数据库时,不会打印成功或失败信息
    if filereadable(“cscope.out”)
    cs add cscope.out " 自动加载
    endif
  • set csverb

结合ctags

cs find 同时搜索ctags&cscope数据库
ctrl-] & ctrl-t 也共用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值