找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5049|回复: 0

[原]Vim实战手册(10)Vimide——打造你自己的IDE(C)

[复制链接]
发表于 2012-2-1 14:05:17 | 显示全部楼层 |阅读模式
转载请注明来自“柳大的CSDN博客”:http://blog.csdn.net/poechant


    经过《Vim实战手册(8)Vimide——打造你自己的IDE(A)》和《Vim实战手册(9)Vimide——打造你自己的IDE(B)》两篇博文,你可能还不满足。因为当我们用Visual Studio、Eclipse、Xcode等编辑器时,有一些非常强大的功能,比如:
   (1)查看某一函数都在哪些函数中被调用过;
   (2)查看某一函数都调用了哪些函数;
   (3)查看某一文件被哪些文件包含;
   (4)查看某一变量都在哪里被引用过;
    ……


1、Linux安装Cscope(Mac用户可以直接跳过)

    首先要下载地址:http://sourceforge.net/projects/cscope/files/
   如果你是在Linux平台上安装Cscope,那么可以直接:
   1./configure
   2make
   3sudo make install


2、Mac安装Cscope(Linux用户不需要关注)

   如果你使用的是Mac平台,需要先编辑src/constants.h,找到这段代码:
   1#if (BSD || V9) && !__NetBSD__ && !__FreeBSD__

    修改为:
   1#if (BSD || V9) && !__NetBSD__ && !__FreeBSD__ && !__APPLE__

   然后再编译:
   1./configure
   2make
   3sudo make install


3、在VimRC中配置Cscope

   1 setcscopequickfix=s-,c-,d-,i-,t-,e-


4、生成cscope文件

   在你的工程根目录下,输入以下命令:
   1cscope-bqR

   则会自动生成如下三个文件:




5、在Vim中导入Cscope文件

    cscope文件都已经被生成了,但是还没有与你的工程关联起来。这时候你可以进入Vim,输入命令:




   其中cs表示scope,add是将scope源文件导入到工程中,第一个参数是scope的out文件,第二个参数是工程的根目录。如果你经常编辑该工程,你可以将这个命令写入到VimRC。

6、体验Cscope

   尝试查询conn_set_state函数被调用过多少次以及分别在哪里调用。输入命令:

    :cs find c conn_set_state

   结果为:




    如果结果很多,你可以使用命令“cw”来打开QuickFix窗口,来切换搜索结果。

7、Cscope的快捷键

(1)索指定符号
    cs find s <symbol>

(2)搜索定义
    cs find g <var_name|func_name>

(3)搜索函数所调用的函数
    cs find d <functions_invoked>

(4)搜索调用此函数的函数
    cs find c <functions_invoking>

(5)搜索指定字符串
    cs find t <text>

(6)搜索egrip指定的模式
    cs find e <egrip>

(7)搜索文件
    cs find f <filename>

(8)搜索包含本文件的文件
    cs find i <including_files>

8、映射Cscope快捷键


    你可以自定义Cscope这些快捷键,方法可以类似参照我们在使用WinManager时自定义的“wm”。


    未完待续,欢迎您继续关注接下来的博文 : )




转载请注明来自“柳大的CSDN博客”:http://blog.csdn.net/poechant
-
作者:Poechant 发表于2012-2-1 13:14:07 原文链接

您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-30 13:53 , Processed in 0.013622 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表