在ubuntu下,直接sudo apt-get install cscope ctags。安装搞定。
一、cscope使用:
1.在vi中用:
这个组合,用来看代码,代码索引目录自然少不了。使用cscope建立文件索引。
cscope -Rbkq
这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。四个参数含义如下:
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-k: 在生成索引文件时,不搜索/usr/include目录
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
注意:请在你工程的根目录下执行这个指令。在你有写权限的情况下,这些文件会在当前目录生成。
生成目录之后,在vi 中加载目录:
:cs add cscope.out
就是在命令模式下,执行添加目录的操作,在打开的源文件中添加吧,直接就可以开始简单的搜索动作了:
:cs find x XXX
第一个小写的x,有如下的取值:
0 or s: Find this C symbol
1 or g: Find this definition
2 or d: Find functions called by this function
3 or c: Find functions calling this function
4 or t: Find this text string
6 or e: Find this egrep pattern
7 or f: Find this file
8 or i: Find files #including this file
第二个大写的X,就是要找的东西了。搜索到后,根据提示,选择想要跳转的地方即可。
使用cs help 可以查看命令选项,很简洁。
2.直接使用cscope也可以,进入工程目录,如1中创建索引,直接执行cscope,然后出现一个很有友善的命令行界面~~!可以快速跳转到自己想要看的地方。
二、ctags使用:
不明白为什么三者要结合在一起,感觉ctags的功能更强一些。首先在工程目录下创建索引:
ctags -R
执行以后,生成一个tags文件,使用vim -t fun_name ... 直接就可以打开相应文件,并跳转到函数处,如果有多处,会跳转到第一处,这个第一处是ctags排序的。
在vim编辑器内用":ta"命令,例如:
:ta foo_bar
最方便的方法是把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方。
注意:运行vim的时候,必须在"tags"文件所在的目录下运行。否则,运行vim的时候还要用":set tags="命令设定"tags"文件的路径,这样vim才能找到"tags"文件。
在函数中移动光标
[{ 转到上一个位于第一列的"{"
}] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方
这些暂时够用了,日后在看看其他的。