使用VIM插件ctags来阅读C代码
2015-11-21 15:16
351 查看
说明
Ctags是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim。并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码;ctags最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags,但是我主要还是用来阅读C源代码。
ctags更新地址:http://ctags.sourceforge.net/ 这个网站是ctags的官方网站,可以下载到关于ctags的最新内容。
ctags能定位什么内容
1)用#define定义的宏
2)枚举类型变量的值
3)函数的定义、原型和声明
4)名字空间(namespace)
5)类型定义(typedef)
6)变量(包括定义和声明)
7)类、结构体、枚举类型、联合
8)类、结构体和联合中成员变量或函数
安装ctags
如果是redhat或centos系统可以直接使用yum在线安装
[root@localhost ~]# yum install ctags
源码位置生成tags文件
[root@localhost ~]# ctags -R *
查找操作(3种使用方式)
1)直接在命令行上操作
[root@localhost ~]# vim -t main
[root@localhost ~]# vim -t pos_create_task
结果:直接打开对应符号对应文件,并定位到该符号的定义位置。常用在知道符号,但不知道在哪个文件模块中的位置。
2)在vim的模式下使用": ta"命令
:ta main
:ta pos_create_task
3)在光标指定位置下直接使用"ctrl + ]"
在光标指定的位置下直接使用"crtl + ]"就可以定位到函数的定义位置;使用"ctrl + t"快捷键返回到上次跳转之前的位置。
关于ctags的用法很多,以下是我们列举的部分:
-->"ctrl + t"退回到原来的地方
-->"[{"转到上一个位于第一列的"{"
-->"}]"转到下一个位于第一列的"{" /* 似乎不管用 */
-->"{"转到上一个空行
-->"}"转到下一个空行
-->"gd"转到当前光标所指的局部变量的定义
-->"*"转到当前光标所指的单词一次出现的地方
-->"#"转到当前光标所指的单词上一次出现的地方
注意事项
使用vim打开相关使用tags标记的源文件时,当前目录要在tags所在目录下执行vim命令。如果在其子目录下边执行vim打开相应文件,默认是使用不了ctags的跳转功能的。解决的方式是,在vim的配置文件中/etc/vimrc或者~/.vimrc中设置:set tags=/var/dz_resource/ineedle/soft/tags,这样就可以了。
Ctags是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim。并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码;ctags最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags,但是我主要还是用来阅读C源代码。
ctags更新地址:http://ctags.sourceforge.net/ 这个网站是ctags的官方网站,可以下载到关于ctags的最新内容。
ctags能定位什么内容
1)用#define定义的宏
2)枚举类型变量的值
3)函数的定义、原型和声明
4)名字空间(namespace)
5)类型定义(typedef)
6)变量(包括定义和声明)
7)类、结构体、枚举类型、联合
8)类、结构体和联合中成员变量或函数
安装ctags
如果是redhat或centos系统可以直接使用yum在线安装
[root@localhost ~]# yum install ctags
源码位置生成tags文件
[root@localhost ~]# ctags -R *
查找操作(3种使用方式)
1)直接在命令行上操作
[root@localhost ~]# vim -t main
[root@localhost ~]# vim -t pos_create_task
结果:直接打开对应符号对应文件,并定位到该符号的定义位置。常用在知道符号,但不知道在哪个文件模块中的位置。
2)在vim的模式下使用": ta"命令
:ta main
:ta pos_create_task
3)在光标指定位置下直接使用"ctrl + ]"
在光标指定的位置下直接使用"crtl + ]"就可以定位到函数的定义位置;使用"ctrl + t"快捷键返回到上次跳转之前的位置。
关于ctags的用法很多,以下是我们列举的部分:
-->"ctrl + t"退回到原来的地方
-->"[{"转到上一个位于第一列的"{"
-->"}]"转到下一个位于第一列的"{" /* 似乎不管用 */
-->"{"转到上一个空行
-->"}"转到下一个空行
-->"gd"转到当前光标所指的局部变量的定义
-->"*"转到当前光标所指的单词一次出现的地方
-->"#"转到当前光标所指的单词上一次出现的地方
注意事项
使用vim打开相关使用tags标记的源文件时,当前目录要在tags所在目录下执行vim命令。如果在其子目录下边执行vim打开相应文件,默认是使用不了ctags的跳转功能的。解决的方式是,在vim的配置文件中/etc/vimrc或者~/.vimrc中设置:set tags=/var/dz_resource/ineedle/soft/tags,这样就可以了。
相关文章推荐
- 安装MySQL-python-1.2.3c1出现“error: command 'gcc' failed with exit status 1”错误
- C++学习笔记25——泛型算法之写入容器
- Java8のStream学习
- Qt5调用QPixmap::fromWinHICON
- Qt实现图像自适应窗口大小之scaled()函数使用
- 提交Python 代码到Spark
- 关于hashcode()的作用
- 【spring】aop切面通知,日志处理
- Eclipse导入SDK源码的方法---包含java源码和android源码
- Delphi自带的的Zip比较好用简单
- C++ 面向对象程序设计
- Python模块函数:os.listdir 打印Win7目录中的文件-中文乱码问题
- C语言二叉树的遍历,递归和非递归
- effective c++避免返回handles指向对象内部成分(2)
- Java8のLambda学习
- Delphi书籍推荐
- java实现图片裁剪缩放工具类
- 一个简单的不用cookie的人人网状态爬取的python爬虫,使用beautifulsoup
- 解析Java的JNI编程中的对象引用与内存泄漏问题
- 泛型限定二---用父类定义比较器,用于子类,减少代码,节约空间