Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6275764
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: LINUX

2013-06-15 12:18:41

我用的是debian系统,下面有些命令可能需要根据不同系统做出修改
1. 安装vim,ctags,cscope

点击(此处)折叠或打开

  1. aptitude install vim ctags cscope

2. 下载个taglist的vim插件
    下载地址:
    根据网页说明把文件安装到相应位置
    taglist依赖于ctags,所以一定要装有ctags才行
3.配置下vim,贴个简单的vim配置

点击(此处)折叠或打开

  1. "------------------------------------------------
  2. "Normal
  3. "------------------------------------------------
  4. syntax on "高亮
  5. set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
  6. set nu "设置行号
  7. set cindent "缩进
  8. set expandtab "使用空格代替tab
  9. set tabstop=4 "让一个tab等于4个空格
  10. set shiftwidth=4 "自动缩进的宽度
  11. set vb t_vb= "去掉错误时出现的铃声
  12. "set nowrap "不自动换行
  13. set hlsearch "高亮显示结果
  14. set incsearch "在输入要搜索的文字时,vim会实时匹配
  15. "设定默认解码
  16. set fenc=utf-8
  17. "使vi兼容windows的中文
  18. set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

  19. "Tlist
  20. map :silent! Tlist
  21. let Tlist_Ctags_Cmd='ctags'
  22. let Tlist_Use_Left_Window=1
  23. let Tlist_Show_One_File=0
  24. let Tlist_File_Fold_Auto_Close=1
  25. let Tlist_Exit_OnlyWindow=1
  26. let Tlist_Process_File_Always=0
  27. let Tlist_Inc_Winwidth=0
  28. "shell
  29. :map : shell
  30. "paste
  31. set pastetoggle=
  32. "cscope
  33. if has("cscope")
  34. set csprg=/usr/bin/cscope
  35. set csto=1
  36. set cst
  37. set nocsverb
  38. " add any database in current directory
  39. if filereadable("cscope.out")
  40. cs add cscope.out
  41. endif
  42. set csverb
  43. endif
  44. "查找C语言符号,即查找函数名、宏、枚举值等出现的地方
  45. nmap s :cs find s =expand("")
  46. "查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
  47. nmap g :cs find g =expand("")
  48. "查找调用本函数的函
  49. nmap c :cs find c =expand("")
  50. "查找本函数调用的函数
  51. nmap d :cs find d =expand("")
  52. "查找指定的字符串
  53. nmap t :cs find t =expand("")
  54. "查找egrep模式,相当于egrep功能,但查找速度快多了
  55. nmap e :cs find e =expand("")
  56. "查找并打开文件,类似vim的find功能
  57. nmap f :cs find f =expand(""):copen
  58. "查找包含本文件的文件
  59. nmap i :cs find i ^=expand("")$
4.下面开始处理内核代码

点击(此处)折叠或打开

  1. 进入内核代码主目录
  2. make cscope tags

这一步可能会耗费点时间,毕竟内核代码比较庞大
5.开始使用vim阅读代码
    进入内核代码主目录,这里不要进入下层目录啊,下层是没有刚才生成的cscope和tags的相关文件的

     taglist的几个简单用法
    

点击(此处)折叠或打开

  1. 打开文件后按F3即可看到taglist的窗口
  2. taglist中的快捷键

  3. ctrl+ww 在列表和源文件中切换
  4. ctrl + ] 查看函数定义
  5. ctrl + o 返回上一级文件。
  6. gf 查看头文件
  7. gd 转到当前光标所指的局部变量的定义处。
  8. * 转到当前光标所在单词的下一次出现的地方。
  9. # 转到当前光标所在的单词的上一次出现的地方。
  10. <CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
  11. o 在一个新打开的窗口中显示光标下tag
  12. <Space> 显示光标下tag的原型定义
  13. u 更新taglist窗口中的tag
  14. s 更改排序方式,在按名字排序和按出现顺序排序间切换
  15. x taglist窗口放大和缩小,方便查看较长的tag
  16. + 打开一个折叠,同zoctags常用快捷键ctags常用快捷键
  17. - 将tag折叠起来,同zc
  18. * 打开所有的折叠,同zR
  19. = 将所有tag折叠起来,同zM
  20. [[ 跳到前一个文件
  21. ]] 跳到后一个文件
  22. q 关闭taglist窗口

    cscope的几个简单用法

点击(此处)折叠或打开

  1. cscope的快捷键我都在.vimrc中配置了,这里给个例子
  2. 光标置于关键词
  3. ctrl + 2 后按一次s 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
6.基本的操作就这些了,看个函数定义声明啥的都不是问题,挺方便的。
阅读(817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~