前言:
在mac,或linux环境下,并没有source insight 这样的软件。且随着嵌入式开发的深入,经常性的需要使用vi来操作板子中系统的一下配置文件等。
因此决定重拾vim。
一,如何查看一个项目源码
1,搭配vim环境,下载相关的插件,这是个非常简单的事情,因此不在此赘述,其难的是 ~/.vimrc 文件的配置
2,ctags 的 ~/.vimrc 配置如下
-
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
" Tag list (ctags) key: wtl --WTL
-
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
if has("win32") "设定windows系统中ctags程序的位置
-
let Tlist_Ctags_Cmd = 'ctags'
-
else "设定linux系统中ctags程序的位置
-
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
-
endif
-
-
let Tlist_Show_One_File = 1
-
"不同时显示多个文件的tag,只显示当前文件的
-
let Tlist_Exit_OnlyWindow = 1
-
"如果taglist窗口是最后一个窗口,则退出vim
-
let Tlist_Use_Left_Window = 1
3,cscope 的 ~/.vimrc 的配置
-
if has("cscope")
-
set cscopetag
-
set csto=0
-
-
if filereadable("cscope.out")
-
cs add cscope.out
-
elseif $CSCOPE_DB != ""
-
cs add $CSCOPE_DB
-
endif
-
-
set cscopeverbose
-
-
nmap <C-\>s :cs find s <C-R>=expand("")<CR><CR>
-
nmap <C-\>g :cs find g <C-R>=expand("")<CR><CR>
-
nmap <C-\>c :cs find c <C-R>=expand("")<CR><CR>
-
nmap <C-\>t :cs find t <C-R>=expand("")<CR><CR>
-
nmap <C-\>e :cs find e <C-R>=expand("")<CR><CR>
-
nmap <C-\>f :cs find f <C-R>=expand("")<CR><CR>
-
nmap <C-\>i :cs find i ^<C-R>=expand("")<CR>$<CR>
-
nmap <C-\>d :cs find d <C-R>=expand("")<CR><CR>
-
nmap <C-@>s :scs find s <C-R>=expand("")<CR><CR>
-
nmap <C-@>g :scs find g <C-R>=expand("")<CR><CR>
-
nmap <C-@>c :scs find c <C-R>=expand("")<CR><CR>
-
nmap <C-@>t :scs find t <C-R>=expand("")<CR><CR>
-
nmap <C-@>e :scs find e <C-R>=expand("")<CR><CR>
-
nmap <C-@>f :scs find f <C-R>=expand("")<CR><CR>
-
nmap <C-@>i :scs find i ^<C-R>=expand("")<CR>$<CR>
-
nmap <C-@>d :scs find d <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>s :vert scs find s <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>g :vert scs find g <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>c :vert scs find c <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>t :vert scs find t <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>e :vert scs find e <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>f :vert scs find f <C-R>=expand("")<CR><CR>
-
nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("")<CR>$<CR>
-
nmap <C-@><C-@>d :vert scs find d <C-R>=expand("")<CR><CR>
-
endif
注意:如果 cscope 不正确配置,会导致
无法产生 cscope.in.out cscope.out cscope.po.out 文件。
4,project 的 ~/.vimrc 配置如下
-
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
" Project1.4.1插件设置
-
" key: spr
-
" 操作 \c 创建项目; \C 创建子项目;
-
" \w 从当前项目移除所有当前层的文件
-
" \W 从当前项目移除所有的文件
-
" \r 刷新项目; \R 递归刷新项目
-
" \l 加载当前项目中的所有文件到VIM,加载过程按任何键可以停止加载
-
" \1 - \9 执行在 g:proj_run{x} 指定的命令, {x} 是执行命令入口的编号
-
" \0 显示由 \1 到 \9 定义的命令
-
" \f1-\f9 执行 g:proj_run_fold{x} 中指定的命令,{x}执行命令入口的编号,
-
" 命令只针对当前项目层的文件
-
" \0 显示由 \1 到 \9 定义的命令; f0类似
-
" Ctrl+↑\↓ 移动文本或者折叠到当前光标的上一行
-
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
" 切换打开和关闭project窗口
-
nmap <silent> <Leader>P <Plug>ToggleProject
-
" 插件项目窗口宽度. 默认值: 24
-
let g:proj_window_width=20 "//当按空格键 <space> 或者单击鼠标左键/<LeftMouse>时项目窗口宽度增加量,默认值:100
-
let g:proj_window_increment=90
-
let g:proj_flags='i' "当选择打开一个文件时会在命令行显示文件名和当前工作路径.
-
let g:proj_flags='m' "在常规模式下开启 |CTRL-W_o| 和 |CTRL-W_CTRL_O| 映射, 使得当>前缓冲区成为唯一可见的缓冲区, 但是项目窗口仍然可见.
-
let g:proj_flags='s' "开启语法高亮.
-
let g:proj_flags='t' "用按 <space> 进行窗口加宽.
-
let g:proj_flags='c' "设置后, 在项目窗口中打开文件后会自动关闭项目窗口.
-
let g:proj_flags='F' "显示浮动项目窗口. 关闭窗口的自动调整大小和窗口替换.
-
let g:proj_flags='L' "自动根据CD设置切换目录.
-
let g:proj_flags='n' "显示行号.
-
let g:proj_flags='S' "启用排序.
-
let g:proj_flags='T' "子项目的折叠在更新时会紧跟在当前折叠下方显示(而不是其底部).
-
let g:proj_flags='v' "设置后将, 按 /G 搜索时用 :vimgrep 取代 :grep.
-
let g:proj_run1='!p4 edit %f' "g:proj_run1 ... g:proj_run9 用法.
-
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 完成,结果如下:
阅读(6168) | 评论(0) | 转发(1) |