Ctags的安装与使用
来源:互联网 发布:mac os 关闭自动更新 编辑:程序博客网 时间:2024/06/07 08:14
前一段时间在学习移植uboot的时候,有些函数不需要编译,但是它却编译了,导致了make的失败。这时候,我们就需要去看看那些函数到底在哪里定义的。但是面对一个庞大的文件夹,里面有大量的代码,有大量的函数,谁能知道某个函数在哪里定义,如果一个一个文件的找,无异于大海捞针。然后通过老师知道了有Ctags这个工具,于是我就去网上学习了一下,轻松的解决了问题。前一段时间并没有去写这篇博客,一直推到现在,那我们就来说一下Ctags这个工具吧。
Ctags的功能
Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。
Ctags的下载与安装
使用yum命令安装
sudo yum install -y ctags下载源码安装
1)从http://ctags.sourceforge.net/下载源代码包后,解压缩生成源代码目录;
2)然后进入源代码根目录执行./configure,生成Makefile文件;
3)然后执行make;
4)编译成功后执行make install。
Ctags的使用方法
ctags -R *
安装完ctags之后,我们一般第一个命令就是:
[PainEver@maple linux-3.0.1]$ ctags -R *
注释:“-R”表示递归创建,包括当前目录下的所有目录;“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件。
[PainEver@maple linux-3.0.1]$ ls tagstags
当我们vim tags进入这个文件会看到,这个文件就像是一个列表,包含了以下对象:
- 用#define定义的宏
- 枚举型变量的值
- 函数的定义、原型和声明
- 名字空间(namespace)
- 类型定义(typedefs)
- 变量(包括定义和声明)
- 类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数
具体是怎写的,有兴趣的可以进tags这个文件中看看。
vim -t xxx
在生成一个ctgs文件之后,我们要想查找函数,变量,结构体什么的就可以执行下面这个命令:
[PainEver@maple linux-3.0.1]$ vim -t xxx /*把xxx换成你想要查找的对象*//*比如我们要查找i2c_driver这个结构体*/[PainEver@maple linux-3.0.1]$ vim -t i2c_driver
然后就会出现下面这个界面:
# pri kind tag 文件 1 F m i2c_driver include/drm/drm_encoder_slave.h struct:drm_i2c_encoder_driver typeref:struct:drm_i2c_encoder_driver::i2c_driver struct i2c_driver i2c_driver; 2 F s i2c_driver include/linux/i2c.h Type number and <Enter> (empty cancels):
这个界面就是包含了i2c_driver出现过的所有地方。我们选择需要查看的编号,输入1或2按下enter键即可查看。
ctrl+]
还有一种情况,就是我们在看代码的时候,里面会出现各种各样的函数,变量,宏,结构体等等的调用,那我们如何查看被调用这些对象是在哪里定义的呢?我们把光标移动到想要查看的对象上,按”ctrl+]”,就可以直接跳转到这个对象定义的地方。
注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:settags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。
ctrl+t/左右键
“ctrl+t“退回至上次查找的变量,如果用户使用了N次“Ctrl+]”查找了N个变量,我们也可以通过N次”ctrl+t“退回最初的位置。
其实有一种方法更方便,就是上下左右的左右键,比如我们查找了a、b、c、d这四个变量,那么在tags缓冲区内,就会有a、b、c、d这四个变量,假设我们现在在看d变量,我们想要去看之前查看的c变量时,就可以通过左键退回上一次查看的变量,然后如果我们想要再看d变量,就可以通过右键在跳转到d变量上。
一般来说我们能够用到的就这几个基础命令,想要深入了解,就 man ctags 具体看一下吧。
- Ctags的安装与使用
- ctags的安装使用
- vim Ctags 安装与使用
- Ctags 的安装与使用(使用命令详解)
- Ctags 的安装与使用(使用命令详解)
- windows下sublime插件ctags的安装与使用
- ctags的安装和使用
- ctags 的安装和使用
- ctags的安装和使用
- ctags的安装和使用
- ctags与taglist的使用
- 关于VIM+ctags+cscope安装与使用
- vim 中Ctags的安装和使用
- vim 中Ctags的安装和使用
- vim中ctags的安装和使用
- vim 中Ctags的安装和使用
- vim 中Ctags的安装和使用
- vim 中Ctags的安装和使用
- 使用AFNetworking上传图片到服务器
- Express框架文件解析
- J2EE搭建maven工程(选择使用jdk和增加资源文件夹)
- 使用QT5绘制OpenCV3的Mat图像
- 常用正则表达验证
- Ctags的安装与使用
- 类型转换
- 【POJ1986】Distance Queries(lca的应用)
- PHP语言基础知识(学习笔记)
- 设计模式学习之简单工厂模式
- lesson6.4Integer类以及如何设置命令行参数
- 数组逆序(难度系数:半颗星)
- Mac通过Docker部署Gitlab实践
- 自动化运维使用cobbler实现大PXE