• 在Vim中使用cscope


    在vim中搜索

    :cs find {querytype} {name}

    {querytype}:

    0 or s: Find this C symbol

    1 or g: Find this difinition

    2 or d: Find functions called by this function

    3 or c: Find functions calling this function

    4 or t: Find this text string

    6 or e: Find this egrep pattern

    7 or f: Find this file

    8 or i: Find files #including this file


    使用cscope碰到的问题

    1. E568: duplicate cscope database not added

    根据提示,cscope数据库重复添加了,我使用的是vim7.2版本,而这个版本在已经支持cscope,并在它的配置文件中开启了cscope功能

    $ vi /etc/vimrc 

     32 if has("cscope") && filereadable("/usr/bin/cscope")
     33    set csprg=/usr/bin/cscope
     34    set csto=0
     35    set cst
     36    set nocsverb
     37    " add any database in current directory
     38    if filereadable("cscope.out")
     39       cs add cscope.out
     40    " else add database pointed to by environment
     41    elseif $CSCOPE_DB != ""
     42       cs add $CSCOPE_DB
     43    endif
     44    set csverb
     45 endif
    

    然后,我们给vim添加了一个插件,cscope_maps.vim, 这个文件主要作用是作一些快捷键映射,免去了输入命令的麻烦,但文件一直没有更新,里面只提及vim7以下的配置方法,在里面有如上所示相同的代码,所以导致了重复添加数据库的冲突

    $ vi ~/.vim/plugin/cscope_maps.vim 

     40     " add any cscope database in current directory
     41     if filereadable("cscope.out")
     42         cs add cscope.out  
     43     " else add the database pointed to by environment variable 
     44     elseif $CSCOPE_DB != ""
     45         cs add $CSCOPE_DB
     46     endif
    

    解决冲突的方法很简单,注释掉这些行便可以了

    2. E567: no cscope connections

    根据提示表示没有添加数据库(cscope.out),指定该文件便是了

    :cs add $CSCOPE_DB

    出现这种问题的原因很简单,就是当前目录下找不到cscope.out这个文件。当一个工程包含子目录的时候,我们一般是在顶层目录使用cscope -Rb建立数据库的,如果我们没有导入CSCOPE_DB这个环境变量的话,我们在子目录下vim打开一个文件便会出现E567问题,这显然很不方便。所以我们需要添加这个环境变量

    $ export CSCOPE_DB=/yourproject/cscope.out

    这样就不需要在子目录下还要手动添加数据库文件了 :)


  • 相关阅读:
    软件工程第四次作业-题目2
    oracle数据库本地网络服务名配置常见问题
    2020软件工程第三次作业
    2020软件工程第二次作业
    2020软件工程第一次作业
    20145208 蔡野 《网络攻防》 后门原理与实践
    20145208蔡野 《网络对抗》逆向及BOF基础实践
    密码分析学学习总结
    20145208 《信息安全系统设计基础》课程总结
    20145208 《信息安全系统设计基础》第十四周学习总结
  • 原文地址:https://www.cnblogs.com/sunj/p/2391610.html
Copyright © 2020-2023  润新知