vim代码进阶 cscope & ctags 简单上手

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xinxiaoci/article/details/84370771

现在我也是小白,刚入门这是一些简单的用法,更多高级用法,快捷键这些暂时没测试,先能用起来再说吧。

先说一下这两个软件的特点

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 ) 

其它高级用法快捷键配置,有机会在测试。

猜你喜欢

转载自blog.csdn.net/xinxiaoci/article/details/84370771