在vim中使用cscope查找调用、定义函数和变量的地方
来源:互联网 发布:软件测试基础知识大全 编辑:程序博客网 时间:2024/04/30 15:17
http://www.sudu.cn/info/html/edu/20060102/294929.html
在vim中用了一阵子ctags,确实美中不足。ctags只能根据调用函数的地方查找定义该函数的地方,不能根据定义函数的地方查找都有哪些地方调用了
该函数。于是又学习了cscope。Cscope在主页上说它具有毋庸置疑的UNIX血统,早在PDP-11的时代就已经在贝尔实验室开发出来了。我的
Linux是SuSE10.0,系统自带的有cscope软件。
一、将
http://cscope.sourceforge.net/cscope_maps.vim
另存为文件~/.vim/plugin/cscope_maps.vim
二、因为cscope将“ctrl+空格”作为映射键,但是这样会调出输入法,因此将~/.vim/plugin/cscope_maps.vim文件中的替换为(或者是你没有映射过的你喜欢的快捷键)
三、进入C语言源代码目录,建立符号表:
mishuang@msh:~/linux/linux0.11/source-0.11> cscope -R
ctr-D退出后,当前目录会多一个文件cscope.out,这个文件比tags大多了。
四、使用指南
1)使用下面的命令直接进入main函数定义的地方,如果有多个的话,输入索引号,回车。
mishuang@msh:~/linux/linux0.11/source-0.11> vi -t main
2)将光标停留在一个函数或变量上,"ctrl+]",将直接跳转到定义该函数的地方。
3)将光标停留在一个函数或变量上,"ctrl+\"再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车即可。
4)将光标停留在一个函数或变量上,再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以水平方式在另外一个窗口显示。
5)将光标停留在一个函数或变量上,再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以垂直方式在另外一个窗口显示。
6)ctrl+t回到原来跳转前的地方,连续按两下’’可以再回去。
附:
vim分割窗口的操作
:split 水平(上下)分割窗口
:vsplit或者CTRL-W v 垂直(左右)分割窗口
:new 水平分割窗口,创建空文件
:vnew 垂直分割窗口,创建空文件
vim多窗口操作命令
:qall 退出所有窗口
:wall 保存所有窗口
:wqall或者:xall 保存并退出所有窗口
:wqall!或者:xall! 保存并退出所有窗口,如果有的文件只读,不需要先设置写权限
:qall! 强制退出所有窗口
CTRL-W W 在窗口间移动
CTRL-W O 关闭其他所有窗口
参考文献:
1)
http://cscope.sourceforge.net
2)
http://cscope.sourceforge.net/cscope_vim_tutorial.html
3)
~/.vimrc
4)
对~/.vimrc的改进
- 在vim中使用cscope查找调用、定义函数和变量的地方
- 在vim中使用cscope查找调用、定义函数和变量的地方
- 在vim中使用cscope查找调用、定义函数和变量的地方
- 在vim中使用cscope查找调用、定义函数和变量的地方
- vim如何跳转到函数定义处及找到在何处被调用-cscope使用
- 在vim中使用cscope
- 在vim中使用cscope
- vim中浏览c++代码使用ctags和cscope进行函数跳转时vimrc的配置
- 在Vim(gvim)中使用cscope
- 在Vim(gvim)中使用cscope
- 在Vim(gvim)中使用cscope
- vim中使用cscope
- vim中使用cscope
- vim中使用cscope
- vim+cscope的使用
- vim+cscope的使用
- vim+cscope的使用
- vim+cscope的使用
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- 无法读取项目文件 .csproj,请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
- using backup controlfile 和 until cancel区别
- 安装11g RAC Clustware 前可以用命令进行检查所有条件是否满足
- 关于 RMAN 备份 数据块 一致性的讨论
- 在vim中使用cscope查找调用、定义函数和变量的地方
- excel2007快捷键
- 兼容Xhmtl和各浏览器在网页中插入Flash的代码
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- ASCII码表
- Swing JTable 表格排序jdk1.5与1.6
- c#中byte[]和string的转换
- OAuth简介(摘自博客园)
- Swing之JTable篇,用JDK1.6中的TableRowSorter实现过滤与排序功能