linux下阅读代码的环境设置(vim + taglist + ctags + cscope)

来源:互联网 发布:西门子s7-200编程实例 编辑:程序博客网 时间:2024/05/17 21:09

1. taglist

vim 官方网页上有下载和安装指导。

用法:

在vim内部,输入 :TlistToggle, 打开taglist窗口(TlistGoogle相当于 TlistOpen和 TlistClose的组合),按ctrl +ww在 taglist窗口和代码窗口之间切换光标; 在 taglist窗口中,光标到一个tag上,按  enter,会到相应的定义处。

在 taglist窗口中,还可以使用快捷键:

s             更改排序方式,在按名字排序和按出现顺序排序间切换

x             taglist窗口放大和缩小,方便查看较长的tag

q             关闭taglist窗口


2. ctags

用法:

进入代码目录,执行

ctags -R *

解析所有的代码

ctags支持的tag有:

#define定义的宏

枚举型变量的值

函数的定义、原型和声明

名字空间(namespace

类型定义(typedefs

变量(包括定义和声明)

类(class)、结构(struct)、枚举类型(enum)和联合(union

类、结构和联合中成员变量或函数

 tag的定位方法:

1) 在命令行:

vim -t tagToBeFind

如果这个变量或函数有多处定义,在VI命令行模式

“:ts”命令就能列出一个列表供用户选择。    当时用":ts"列出所有查找项时,可使用“q",让有选择你要查看的那一项的编号即可跳入查看。

“:tp”为上一个tag标记文件,

“:tn”为下一个tag标记文件。

":tl " 最后一个tag标记文件

当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。


2)  vim编辑器内用":ta"命令,例如:

:ta foo_bar

3)光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方

在函数中移动光标

[{ 转到上一个位于第一列的"{"

}]  转到下一个位于第一列的"{"

{   转到上一个空行

}   转到下一个空行

gd  转到当前光标所指的局部变量的定义

*   转到当前光标所指的单词下一次出现的地方

#   转到当前光标所指的单词上一次出现的地方


3. scope

在代码目录下运行

cscope -Rbq

如果不是c代码,使用:

$ find ./ -name "*.c" -or -name "*.h" -or -name "*.cpp" -or -name "*.S" | cscope -Rbq

在vim 中执行:

:cs add cscope.out 
会把索引信息加载进来

查看是否已经加载索引信息:

:cs s

查找命令:

cs f option symbol

option 可以为:

s ---> 查找  函数名、宏、枚举值等符号出现的地方

g------>查找函数、宏、枚举等定义的位置

c------> 查找调用本函数的函数

t----> 查找指定的字符串

f ---> 查找并打开文件


自动那个加载 cscope,out文件:

修改 .vimrc, 加入:

set nuset tabstop=4set noexpandtab%retab!if has("cscope")set csprg=/usr/bin/cscopeset csto=1set cstset nocsverb" add any cscope database in current directoryif filereadable("cscope.out")    cs add cscope.out" else add the database pointed to by environment variableelseif $CSCOPE_DB != ""    cs add $CSCOPE_DBendif  set csverbendif