1. 安装vim,ctags,cscope
点击(此处)折叠或打开
- aptitude install vim ctags cscope
2. 下载个taglist的vim插件
下载地址:
根据网页说明把文件安装到相应位置
taglist依赖于ctags,所以一定要装有ctags才行
3.配置下vim,贴个简单的vim配置
点击(此处)折叠或打开
- "------------------------------------------------
- "Normal
- "------------------------------------------------
- syntax on "高亮
- set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
- set nu "设置行号
- set cindent "缩进
- set expandtab "使用空格代替tab
- set tabstop=4 "让一个tab等于4个空格
- set shiftwidth=4 "自动缩进的宽度
- set vb t_vb= "去掉错误时出现的铃声
- "set nowrap "不自动换行
- set hlsearch "高亮显示结果
- set incsearch "在输入要搜索的文字时,vim会实时匹配
- "设定默认解码
- set fenc=utf-8
- "使vi兼容windows的中文
- set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
-
- "Tlist
-
map
:silent! Tlist - let Tlist_Ctags_Cmd='ctags'
- let Tlist_Use_Left_Window=1
- let Tlist_Show_One_File=0
- let Tlist_File_Fold_Auto_Close=1
- let Tlist_Exit_OnlyWindow=1
- let Tlist_Process_File_Always=0
- let Tlist_Inc_Winwidth=0
- "shell
-
:map
: shell - "paste
-
set pastetoggle=
- "cscope
- if has("cscope")
- set csprg=/usr/bin/cscope
- set csto=1
- set cst
- set nocsverb
- " add any database in current directory
- if filereadable("cscope.out")
- cs add cscope.out
- endif
- set csverb
- endif
- "查找C语言符号,即查找函数名、宏、枚举值等出现的地方
-
nmap
s :cs find s =expand(" ") - "查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
-
nmap
g :cs find g =expand(" ") - "查找调用本函数的函
-
nmap
c :cs find c =expand(" ") - "查找本函数调用的函数
-
nmap
d :cs find d =expand(" ") - "查找指定的字符串
-
nmap
t :cs find t =expand(" ") - "查找egrep模式,相当于egrep功能,但查找速度快多了
-
nmap
e :cs find e =expand(" ") - "查找并打开文件,类似vim的find功能
-
nmap
f :cs find f =expand(" ") :copen - "查找包含本文件的文件
-
nmap
i :cs find i ^ =expand(" ") $
点击(此处)折叠或打开
-
进入内核代码主目录
- make cscope tags
这一步可能会耗费点时间,毕竟内核代码比较庞大
5.开始使用vim阅读代码
进入内核代码主目录,这里不要进入下层目录啊,下层是没有刚才生成的cscope和tags的相关文件的
taglist的几个简单用法
点击(此处)折叠或打开
- 打开文件后按F3即可看到taglist的窗口
-
taglist中的快捷键
-
-
ctrl+ww 在列表和源文件中切换
-
ctrl + ] 查看函数定义
-
ctrl + o 返回上一级文件。
-
gf 查看头文件
-
gd 转到当前光标所指的局部变量的定义处。
-
* 转到当前光标所在单词的下一次出现的地方。
-
# 转到当前光标所在的单词的上一次出现的地方。
-
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
-
o 在一个新打开的窗口中显示光标下tag
-
<Space> 显示光标下tag的原型定义
-
u 更新taglist窗口中的tag
-
s 更改排序方式,在按名字排序和按出现顺序排序间切换
-
x taglist窗口放大和缩小,方便查看较长的tag
-
+ 打开一个折叠,同zoctags常用快捷键ctags常用快捷键
-
- 将tag折叠起来,同zc
-
* 打开所有的折叠,同zR
-
= 将所有tag折叠起来,同zM
-
[[ 跳到前一个文件
-
]] 跳到后一个文件
- q 关闭taglist窗口
cscope的几个简单用法
点击(此处)折叠或打开
- cscope的快捷键我都在.vimrc中配置了,这里给个例子
-
光标置于关键词
- ctrl + 2 后按一次s 查找C语言符号,即查找函数名、宏、枚举值等出现的地方