转自:http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.htmlphp
加班的时候,听同事提到gvim在windows下的使用,而后忽然想起来几年前实习的时候,在实习公司也用的GVIM,可是想不起来为何用这个工具了,因此就找了篇博文,看了看,而后在本身的电脑上从新配了下,过程以下。html
环境:Windows7 旗舰版python
一、安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc。vim
二、安装中文帮助:vimcdoc-1.8.0-setup.exe 地址http://vimcdoc.sourceforge.net/windows
会自动识别gvim的安装路径,bash
安装完后,gvim菜单中文出现乱码,在_vimrcset文件中增长:app
1 " 配置多语言环境,解决中文乱码问题 2 3 if has("multi_byte") 4 " UTF-8 编码 5 set encoding=utf-8 6 set termencoding=utf-8 7 set formatoptions+=mM 8 set fencs=utf-8,gbk 9 if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)' 10 set ambiwidth=double 11 endif 12 if has("win32") 13 source $VIMRUNTIME/delmenu.vim 14 source $VIMRUNTIME/menu.vim 15 language messages zh_CN.utf-8 16 endif 17 else 18 echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 19 endif
输入:help,显示中文帮助,说明安装成功:函数
三、设置语法高亮工具
编辑安装目录下的_vimrc文件(例如:个人在D:\Program Files\Vim)ui
加入如下内容:
1 set nu! 2 colorscheme desert 3 syntax enable 4 syntax on 5 set nobackup
再打开gvim,打开一个源代码文件:
这些设置使得gvim能够显示行号,并使用了desert配色方案,并且打开了语法高亮功能(用不一样颜色显示注释、关键字、字符串等)。
咱们还可让函数名也高亮起来,
这里对C、C++的代码进行配置:在D:\Program Files\Vim\vim73\syntax下找到 c.vim 和 cpp.vim,分别添加如下内容:
1 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2 2 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1 3 hi cFunction gui=NONE guifg=#B5A1FF
从新打开gvim,效果以下:
四、安装Ctags
下载地址:http://ctags.sourceforge.net/,在解压后将文件夹中的ctags.exe复制到D:\ProgramFiles\Vim\vim73下,并编辑_vimrc文件,添加如下内容:
1 set tags=tags; 2 set autochdir
而后将D:\ProgramFiles\Vim\vim73加到环境变量的path中。在须要查看的源代码目录下执行命令ctags -R(经过cmd或者其余bash手段);而后再用gvim打开源代码文件:
按住“CTRL”键,点击对应的函数名或“CTRL+]”,会自动跳转到函数的定义部分,“CTRL+T”则返回;
五、源代码分析工具 taglist
下载地址:http://vim.sourceforge.net/scripts/script.php?script_id=273,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到d:\Program Files\Vim\vim73下的doc及plugin中。
在_vimrc文件中加入如下内容:
1 let Tlist_Show_One_File=1 2 let Tlist_Exit_OnlyWindow=1
用gvim打开代码文件(已生成过tags文件),输入:Tlist,TagList窗口即出如今左侧。再输入:
:Tlist,左侧栏消失;左侧栏列出了当前文件中的全部宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置至关方便
设置自动Taglist自动开启:
1 let Tlist_Auto_Open=1
六、文件浏览组件 WinManager
winmanager.zip 地址http://www.vim.org/scripts/download_script.php?src_id=754
将winmanager.zip解压和拷贝,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到d:\Program Files\Vim\vim73下的doc及plugin中
在_vimrc文件中加入如下内容:
1 let g:winManagerWindowLayout='FileExplorer|TagList' 2 nmap <silent> <F8> :WMToggle<cr>
设置自动打开Winmanager:
1 let g:AutoOpenWinManager = 1
同时在winmanager.vim中加入一段话:
"set auto open Winmanager if g:AutoOpenWinManager autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd w endif
注:若是设置Winmanager自动开,那么Taglist自动open变量须要关闭,不然会出现两个导航栏。
用gvim打开代码文件,normal状态下按下F8能够打开关闭, 窗口以下:
左上角是winmanager 浏览文件的窗口,左下角的是TagList窗口;
七、多文档编辑
minibufexpl.vim 地址http://www.vim.org/scripts/download_script.php?src_id=3640
解压后将将minibufexpl.vim复制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
1 let g:miniBufExplMapCTabSwitchBufs=1 2 let g:miniBufExplMapWindowsNavVim=1 3 let g:miniBufExplMapWindowNavArrows=1
用GVIM :e打开多个源代码文件后,如图:
ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,能够切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。
这样能够完成多个标签页的切换
------------------------------------------------------------------------本人配置到这-----------------------------------------------------------------------
八、在工程中快速查找
grep.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7645
解压后把grep.vim文件拷贝到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
由于windows下是不带grep的,须要下载Grep for Windowshttp://gnuwin32.sourceforge.net/packages/grep.htm
下载后在环境变量中增长grep的路径;
用gvim打开一个源代码文件,光标选择须要查找的内容,按F3,肯定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出全部符合条件的搜索结果
九、h\c切换(针对C、C++)
下载插件:a.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7218
将a.vim复制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打开源码文件后,按F12便可以在c/h文件中切换,也能够经过输入:A实现。
十、高亮书签
下载插件:visualmark.vim 地址http://www.vim.org/scripts/download_script.php?src_id=4700
将visualmark.vim复制到d:\Program Files\Vim\vim73\plugin。
用gvim打开源码文件,将光标定位在须要添加书签的地方,按下ctrl+F2,即添加了书签。
使用F2在书签之间正向切换,shift+F2反向切换。
十一、Python代码补全
解压后,将里面的python_pydiction.vim文件复制到D:\Program Files\Vim\vimfiles\ftplugin
将complete-dict 和 pydiction.py复制到D:\Program Files\Vim\vimfiles\ftplugin\pydiction
在_vimrc文件中增长配置以下:
filetype plugin on “启用filetype插件
let g:pydiction_location = 'D:\Program Files\Vim\vimfiles\ftplugin\pydiction\complete-dict'
let g:pydiction_menu_height = 20 ”设置弹出菜单的高度,默认是15
用gvim打开一个py文件,输入row+[tab],就能够看到自动补全的代码选项了
十二、python编译
下载VimPdb,解压后拷贝VimPdb.py,VimPdb.vim到plugin便可。
用vim代开python代码文件,按F5运行,而后按F2设置断点,在运行到断点后能够用按F12能够查看Stack Trace,F3查看变量和参数值。
不过这种方法使用了一下,常常会死掉,不知道为何,因此在网上找到了另一种方法:
在_vimrc增长
python << EOF import time import vim def SetBreakpoint(): nLine = int( vim.eval( 'line(".")')) strLine = vim.current.line i = 0 strWhite = "" while strLine[i] == ' ' or strLine[i] == "\t": i += 1 strWhite += strLine[i] vim.current.buffer.append( "%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" % {'space':strWhite, 'mark': '#' * 30}, nLine - 1) for strLine in vim.current.buffer: if strLine == "import pdb": break else: vim.current.buffer.append( 'import pdb', 0) vim.command( 'normal j1') break vim.command( 'map <C-M> :py SetBreakpoint()<cr>') def RemoveBreakpoints(): nCurrentLine = int( vim.eval( 'line(".")')) nLines = [] nLine = 1 for strLine in vim.current.buffer: if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()': nLines.append( nLine) nLine += 1 nLines.reverse() for nLine in nLines: vim.command( 'normal %dG' % nLine) vim.command( 'normal dd') if nLine < nCurrentLine: nCurrentLine -= 1 vim.command( 'normal %dG' % nCurrentLine) vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>') vim.command( 'map <C-D> :!python %<cr>') EOF
而后在要调试的代码里面用ctrl-M设断点
ctrl-D运行
1三、Python代码检查
下载pyflakes,解压缩后把pyflakes.vim文件和pyflakes目录拷贝套ftplugin\python目录中,打开一个有问题的python源代码文件,执行命令:cc,便可进行代码检查: