1.winmanager

nmap wm :WMToggle<cr>

map <F3> :silent! Tlist<CR> "按下F3就可以呼出了

合并成map <F3> :WMToggle<cr>,因为WMToggle调出时,Tlist自动调出了,所以F3就可以了
2.minibufexpl.vim
将minibufexpl.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图


ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。


2.安装中文帮助手册。
运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。
安装完毕后重新打开gvim,:help 时帮助手册已经是中文的了。
进行到这一步时,我的gvim菜单处的中文出现了乱码。
在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为 lang 的文件夹删去,使菜单语言变为英语。

3.语法高亮。
首先,编辑_vimrc文件加入以下内容:
set nu!
colorscheme desert
syntax enable
syntax on
这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。
我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到 c.vim 和 cpp.vim,分别添加以下内容:
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF

 

 


我的vimrc文件


set go='无标题,工具栏'
let g:miniBufExplMapCTabSwitchBufs
=1
let g:miniBufExplMapWindowsNavVim
=1
let g:miniBufExplMapWindowNavArrows
=1


let g:winManagerWindowLayout
='FileExplorer|TagList'
map 
<F3> :WMToggle<cr>


map fg : Dox
<cr>
let g:DoxygenToolkit_authorName
="zhy"
let g:DoxygenToolkit_licenseTag
="My own license\<enter>"
let g:DoxygenToolkit_undocTag
="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre 
= "@brief\t"
let g:DoxygenToolkit_paramTag_pre 
= "@param\t"
let g:DoxygenToolkit_returnTag 
= "@return\t"
let g:DoxygenToolkit_briefTag_funcName 
= "no"
let g:DoxygenToolkit_maxFunctionProtoLines 
= 30


"对NERD_commenter的设置
let NERDShutUp=1
"支持单行和多行的选择,//格式
map <c-h> ,c<space>


set completeopt=menu


"进行Tlist的设置
"
TlistUpdate可以更新tags
"
map <F3> :silent! Tlist<CR> "按下F3就可以呼出了
let Tlist_Ctags_Cmd
='ctags' "因为我们放在环境变量里,所以可以直接执行
let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边
let Tlist_Show_One_File=1 "让taglist可以同时展示多个文件的函数列表,如果想只有1个,设置为1
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
"
是否一直处理tags.1:处理;0:不处理
let Tlist_Process_File_Always=0 "不是一直实时更新tags,因为没有必要
let Tlist_Inc_Winwidth=0


map 
<F12> :call Do_CsTag()<CR>
nmap 
<C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap 
<C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap 
<C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap 
<C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap 
<C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap 
<C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
nmap 
<C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>
nmap 
<C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>
function Do_CsTag()
    let dir 
= getcwd()
    
if filereadable("tags")
        
if(g:iswindows==1)
            let tagsdeleted
=delete(dir."\\"."tags")
        
else
            let tagsdeleted
=delete("./"."tags")
        endif
        
if(tagsdeleted!=0)
            echohl WarningMsg 
| echo "Fail to do tags! I cannot delete the tags" | echohl None
            
return
        endif
    endif
    
if has("cscope")
        silent
! execute "cs kill -1"
    endif
    
if filereadable("cscope.files")
        
if(g:iswindows==1)
            let csfilesdeleted
=delete(dir."\\"."cscope.files")
        
else
            let csfilesdeleted
=delete("./"."cscope.files")
        endif
        
if(csfilesdeleted!=0)
            echohl WarningMsg 
| echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None
            
return
        endif
    endif
    
if filereadable("cscope.out")
        
if(g:iswindows==1)
            let csoutdeleted
=delete(dir."\\"."cscope.out")
        
else
            let csoutdeleted
=delete("./"."cscope.out")
        endif
        
if(csoutdeleted!=0)
            echohl WarningMsg 
| echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None
            
return
        endif
    endif
    
if(executable('ctags'))
        
"silent! execute "!ctags ---c-types=+--fields=+*"
        silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."
    endif
    
if(executable('cscope'&& has("cscope") )
        
if(g:iswindows!=1)
            silent
! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' > cscope.files"
        
else
            silent
! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
        endif
        silent
! execute "!cscope -b"
        execute 
"normal :"
        
if filereadable("cscope.out")
            execute 
"cs add cscope.out"
        endif
    endif
endfunction



if(has("win32"|| has("win95"|| has("win64"|| has("win16")) "判定当前操作系统类型
    let g:iswindows=1
else
    let g:iswindows
=0
endif
set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
syntax on"打开高亮
if has("autocmd")
    filetype plugin indent on 
"根据文件进行缩进
    augroup vimrcEx
        au
!
        autocmd FileType text setlocal textwidth
=78
        autocmd BufReadPost 
*
                    \ 
if line("'\"") > 1 && line("'\"") <= line("$") | "实现打开同一文件时,vim能够自动记住上一次的位置
                    \ exe "normal! g`\"" |
                    \ endif
    augroup END
else
    
set autoindent " always set autoindenting on "智能缩进,相应的有cindent,官方说autoindent可以支持各种文件的缩进,但是效果会比只支持C/C++的cindent效果会差一点,但笔者并没有看出来
endif 
" has("autocmd")
set tabstop=4 "让一个tab等于4个空格
set vb t_vb=
set nowrap "不自动换行
set hlsearch "高亮显示结果
set incsearch "在输入要搜索的文字时,vim会实时匹配
set backspace=indent,eol,start whichwrap+=<,>,[,] "允许退格键的使用
if(g:iswindows==1"允许鼠标的使用
    "防止linux终端下无法拷贝
    if has('mouse')
        
set mouse=a
    endif
    au GUIEnter 
* simalt ~x
endif
"字体的设置
set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI "记住空格用下划线代替哦
set gfw=幼圆:h10:cGB2312 
colorscheme desert


set nocompatible
source $VIMRUNTIME
/vimrc_example.vim
source $VIMRUNTIME
/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt 
= '-a --binary '
  
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 
= v:fname_in
  
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 
= v:fname_new
  
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 
= v:fname_out
  
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq 
= ''
  
if $VIMRUNTIME =~ ' '
    
if &sh =~ '\<cmd'
      let cmd 
= '""' . $VIMRUNTIME . '\diff"'
      let eq 
= '"'
    
else
      let cmd 
= substitute($VIMRUNTIME, ' ''''') . '\diff"'
    endif
  
else
    let cmd 
= $VIMRUNTIME . '\diff'
  endif
  silent execute 
'!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction