linux下 vim+ctags+cscope阅读源码
一. vim
vim作为linux下的必备文本编辑工具,必须掌握,网上教程很多,就不列举了。这里有一份简明vim练级攻略,不熟悉的请自行学习。
二. ctags
ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。
安装
- 这里先给出ubuntu下的安装
sudo apt-get install ctags
- 或者是下载源码自行安装
http://ctags.sourceforge.net/
使用准备
ctags的使用很简单,vim已经内置了对ctags的支持。
首先在源代码根目录执行ctags -R,递归的为源码建立tags,在根目录会生成一个tags的文件,里面存放了各种函数和变量的tag,用于阅读时的跳转。
使用
方法一
- 使用vim打开你要阅读的源码,在vim中的命令模式下导入tags标签
:set tags=tags文件的路径
这时就可以使用tags的功能进行跳转阅读了,常用ctags跳转命令后面给出。
方法二
- 每次手动导入tags所在目录相当麻烦,而且还只能在ctags文件所在目录进行操作,正确姿势应该是写入.vimrc文件,自动从当前目录递归向上寻找。在你的主目录下的.vimrc文件中写入以下命令:
set tags=./tags;,tags
“./tags;”表示循环向上递归寻找tags文件
命令
这里列举一些常用命令(等我遇到其他常用的再来补充)
命令 | 作用 |
---|---|
Ctrl + ] | 使光标在函数或变量上,即可跳转到其定义处 |
Ctrl + t | 回到你跳转之前的位置 |
三. cscope
对于简单的代码,ctags就够用了,但是对于比较复杂的代码来说,ctags显得有点力不从心,所以我们需要功能更多的cscope;vim同样内置了对cscope的支持。
安装
- ubuntu下的安装
sudo apt-get install cscope
- 或者是下载源码自行安装
http://cscope.sourceforge.net/
使用准备
首先在源代码根目录执行cscope -Rbq,就会生成cscope.out文件(索引数据库)
参数 | 作用 |
---|---|
-R | 在生成索引文件时,搜索子目录树中的代码 |
-b | 只生成索引文件,不进入cscope的界面 |
-q | 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度 |
使用
cscope.out是cscope索引的数据库,要将其加入到vim中去
方法一
- 使用vim打开文件
- 在vim命令中执行:cs add [cscope.out文件位置],添加数据库
然后就可以使用cscope命令进行查找了,命令稍后给出
方法二
在.vimrc中进行配置,令其自动寻找cscope.out文件位置,这里给出一份配置如下:
" Vim global plugin for autoloading cscope databases.
" Last Change: Wed Jan 26 10:28:52 Jerusalem Standard Time 2011
" Maintainer: Michael Conrad Tadpol Tilsra <tadpol@tadpol.org>
" Revision: 0.5
if exists("loaded_autoload_cscope")
finish
endif