现在我也是小白,刚入门这是一些简单的用法,更多高级用法,快捷键这些暂时没测试,先能用起来再说吧。
先说一下这两个软件的特点
ctags: 可以搜索到一些函数,变量的定义位置,并且可以快速的跳入跳出,非常方便。
cscope: 功能更强大点,可以搜索到函数的调用可被调用的情况。但是在一些简单操作上感觉没有ctags方便。
软件安装
apt-get install cscope
apt-get install ctags
跳转到源码根目录
先建立cscope索引,再建立 ctags 库。
cd /work/src
cscope -Rbq
ls -lh cscope.*
ctags -R
ls -lh tags
添加两个库到 vim 中
vim ~/.vimrc
在末尾添加如下信息
" cscope 配置 quickfix 窗口 "
set cscopequickfix=s-,c-,d-,i-,t-,e-
" 添加 cscope 索引 "
cs add /work/src/cscope.out /work/src/kernel
" 添加 ctags 库 "
set tags=/work/src/tags
使用方法:
ctags比较简单容易上手
在vim命令模式输入
ts 函数/变量 列出所有的函数和变量的定义和声明位置。然后输入序号跳转到指定的位置。
:ts 返回索引列表 以及所在的文件名
:tp 上一个位置
:tn 下一个位置
Ctrl+] 跳转到光标所在位置 函数/变量 所在位置
Ctrl+t 返回上一次的位置
cscope比较复杂些
在vim命令模式输入
: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 —— 查找#include这个文件的文件(们)
按下回车后vim会自动跳转到第一个符合要求的地方, 并且在命令栏显示有多少符合要求的结果
如果想看其他的结果, 可以用下面的命令打开QuickFix窗口:
:cw
然后通过下面指令慢慢挑选了。
:cc 显示详细错误信息 ( :help :cc )
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
:cl 列出所有错误 ( :help :cl )
:cw 如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col 到前一个旧的错误列表 ( :help :col )
:cnew 到后一个较新的错误列表 ( :help :cnew )
其它高级用法快捷键配置,有机会在测试。