Chinaunix首页 | 论坛 | 博客
  • 博客访问: 852416
  • 博文数量: 321
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 11:25
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(10)

2015年(61)

2014年(187)

2013年(62)

分类: 嵌入式

2015-05-15 14:22:50

前言:
    在mac,或linux环境下,并没有source insight 这样的软件。且随着嵌入式开发的深入,经常性的需要使用vi来操作板子中系统的一下配置文件等。
    因此决定重拾vim。

一,如何查看一个项目源码
    1,搭配vim环境,下载相关的插件,这是个非常简单的事情,因此不在此赘述,其难的是 ~/.vimrc 文件的配置

    2,ctags 的 ~/.vimrc 配置如下

点击(此处)折叠或打开

  1. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  2. " Tag list (ctags) key: wtl --WTL
  3. " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  4. if has("win32") "设定windows系统中ctags程序的位置
  5. let Tlist_Ctags_Cmd = 'ctags'
  6. else "设定linux系统中ctags程序的位置
  7. let Tlist_Ctags_Cmd = '/usr/bin/ctags'
  8. endif

  9. let Tlist_Show_One_File = 1
  10. "不同时显示多个文件的tag,只显示当前文件的
  11. let Tlist_Exit_OnlyWindow = 1
  12. "如果taglist窗口是最后一个窗口,则退出vim
  13. let Tlist_Use_Left_Window = 1

    3,cscope 的 ~/.vimrc 的配置

点击(此处)折叠或打开

  1. if has("cscope")
  2. set cscopetag
  3. set csto=0
  4.  
  5. if filereadable("cscope.out")
  6. cs add cscope.out
  7. elseif $CSCOPE_DB != ""
  8. cs add $CSCOPE_DB
  9. endif

  10. set cscopeverbose
  11.  
  12. nmap <C-\>s :cs find s <C-R>=expand("")<CR><CR>
  13. nmap <C-\>g :cs find g <C-R>=expand("")<CR><CR>
  14. nmap <C-\>c :cs find c <C-R>=expand("")<CR><CR>
  15. nmap <C-\>t :cs find t <C-R>=expand("")<CR><CR>
  16. nmap <C-\>e :cs find e <C-R>=expand("")<CR><CR>
  17. nmap <C-\>f :cs find f <C-R>=expand("")<CR><CR>
  18. nmap <C-\>i :cs find i ^<C-R>=expand("")<CR>$<CR>
  19. nmap <C-\>d :cs find d <C-R>=expand("")<CR><CR>
  20. nmap <C-@>s :scs find s <C-R>=expand("")<CR><CR>
  21. nmap <C-@>g :scs find g <C-R>=expand("")<CR><CR>
  22. nmap <C-@>c :scs find c <C-R>=expand("")<CR><CR>
  23. nmap <C-@>t :scs find t <C-R>=expand("")<CR><CR>
  24. nmap <C-@>e :scs find e <C-R>=expand("")<CR><CR>
  25. nmap <C-@>f :scs find f <C-R>=expand("")<CR><CR>
  26. nmap <C-@>i :scs find i ^<C-R>=expand("")<CR>$<CR>
  27. nmap <C-@>d :scs find d <C-R>=expand("")<CR><CR>
  28. nmap <C-@><C-@>s :vert scs find s <C-R>=expand("")<CR><CR>
  29. nmap <C-@><C-@>g :vert scs find g <C-R>=expand("")<CR><CR>
  30. nmap <C-@><C-@>c :vert scs find c <C-R>=expand("")<CR><CR>
  31. nmap <C-@><C-@>t :vert scs find t <C-R>=expand("")<CR><CR>
  32. nmap <C-@><C-@>e :vert scs find e <C-R>=expand("")<CR><CR>
  33. nmap <C-@><C-@>f :vert scs find f <C-R>=expand("")<CR><CR>
  34. nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("")<CR>$<CR>
  35. nmap <C-@><C-@>d :vert scs find d <C-R>=expand("")<CR><CR>
  36. endif
    注意:如果 cscope 不正确配置,会导致无法产生 cscope.in.out  cscope.out  cscope.po.out  文件。

    4,project 的 ~/.vimrc 配置如下

点击(此处)折叠或打开

  1. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  2. " Project1.4.1插件设置
  3. " key: spr
  4. " 操作 \c 创建项目; \C 创建子项目;
  5. " \w 从当前项目移除所有当前层的文件
  6. " \W 从当前项目移除所有的文件
  7. " \r 刷新项目; \R 递归刷新项目
  8. " \l 加载当前项目中的所有文件到VIM,加载过程按任何键可以停止加载
  9. " \1 - \9 执行在 g:proj_run{x} 指定的命令, {x} 是执行命令入口的编号
  10. " \0 显示由 \1 到 \9 定义的命令
  11. " \f1-\f9 执行 g:proj_run_fold{x} 中指定的命令,{x}执行命令入口的编号,
  12. " 命令只针对当前项目层的文件
  13. " \0 显示由 \1 到 \9 定义的命令; f0类似
  14. " Ctrl+↑\↓ 移动文本或者折叠到当前光标的上一行
  15.  """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  16. " 切换打开和关闭project窗口
  17. nmap <silent> <Leader>P <Plug>ToggleProject
  18. " 插件项目窗口宽度. 默认值: 24
  19. let g:proj_window_width=20 "//当按空格键 <space> 或者单击鼠标左键/<LeftMouse>时项目窗口宽度增加量,默认值:100
  20. let g:proj_window_increment=90
  21. let g:proj_flags='i' "当选择打开一个文件时会在命令行显示文件名和当前工作路径.
  22. let g:proj_flags='m' "在常规模式下开启 |CTRL-W_o||CTRL-W_CTRL_O| 映射, 使得当>前缓冲区成为唯一可见的缓冲区, 但是项目窗口仍然可见.
  23. let g:proj_flags='s' "开启语法高亮.
  24. let g:proj_flags='t' "用按 <space> 进行窗口加宽.
  25. let g:proj_flags='c' "设置后, 在项目窗口中打开文件后会自动关闭项目窗口.
  26. let g:proj_flags='F' "显示浮动项目窗口. 关闭窗口的自动调整大小和窗口替换.
  27. let g:proj_flags='L' "自动根据CD设置切换目录.
  28. let g:proj_flags='n' "显示行号.
  29. let g:proj_flags='S' "启用排序.
  30. let g:proj_flags='T' "子项目的折叠在更新时会紧跟在当前折叠下方显示(而不是其底部).
  31. let g:proj_flags='v' "设置后将, 按 /G 搜索时用 :vimgrep 取代 :grep.
  32. let g:proj_run1='!p4 edit %f' "g:proj_run1 ... g:proj_run9 用法.
  33. let g:proj_run3='silent !gvim %f'
    注意:如果 project 配置不成功,会导致无法创建项目工程


二,实际操作
    0,进入到源码的顶层目录
    1,ctags 创建创建函数的映射
        #ctags -R 
        
        成功的话会在当前目录下生成 tags/ 目录
    
    2,cscope 创建创建变量,宏等的映射
        #cscope -Rbkq
        
        成功的话,会生成 cscope.in.out  cscope.out  cscope.po.out 三个文件

    3,建立项目
        3.1 进入到vim
            #sudo vim
            

        3.2 打开项目功能
               输入命令 :Project
            
            
         3.3 创建项目
                :\C


        3.4 根据提示输入项目文件名:hiIpc

        3.5 根据提示输入项目源码的绝对路径 : /work/samba/code/vim

        3.6 剩余的两个输入,直接回车就可以

        3.7 完成,结果如下:
        



阅读(794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~