您的位置:首页 > 运维架构

Cscope 的使用

2014-04-17 19:37 253 查看
http://cscope.sourceforge.net/cscope_vim_tutorial.html


在vim中,使用Cscope来快速定位函数的定义,查找函数的原型,很方便。

在我Fedora8的机器中,已经默认安装了cscope这个程序。

刚刚使用cscope,不是很熟悉,很多“先进的”功能留待以后慢慢挖掘。 这里先写一下vim中简单的使用cscope,以便能够在源代码中:

1. 快速切换至函数的定义。

2. 函数的声明.

3. 查找某个函数被使用的情况。

首先,让vim支持cscope,在/etc/vim/vimrc中加入:

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

其次,要在源代码目录内生成相关的cscope的信息.

这里以libpcap代码为例

#cd /usr/code/libpcap

#cscope -Rbq

#把生成的cscope文件导入到vim中来

#:cs add /usr/code/libpcap/cscope.out /usr/code/libpcap/

下面就可以在vim中进行实际演练操作了.

1.把光标移到某个函数上,使用Ctrl+],就可以跳到函数的定义中.

2.查找某个函数的声明和定义:

:cs find g strcpy

3.如果出现找出多个函数声明和定义的情况,可以使用quickFix窗口进行选择切换:

:cw

另外,更多功能可以查找相关的帮助,以下转载了一些cs find的技巧. 可以用得着.

-----以下为转载的. 作者(吴垠)

--------http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx

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

"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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: