今天一时兴起想要装个Gvim来打代码,但是发现网上的配置教程几乎都是一字不差的复制粘贴而且又是年代久远,里面那些www.vim.org的文件都下不了(好像因为现在要了的缘故,几年前貌似不用),所以找齐所需的文件还是比较麻烦的,而且里面有一些地方讲得并不是十分的清楚,所以配置弄了一整天,就发这篇博文来详细介绍一下怎么配置Gvim跟大家分享一下。
本文所用到的所有文件下载地址:http://download.csdn.net/detail/acelove40/8654713
环境:windows7 旗舰版
1、安装Gvim,运行gvim74.3336883054.exe进行安装。
2、安装中文帮助,运行vimcdoc-1.9.0-setup.exe,选择Vim的安装路径(我是安装在C盘你们按自己的安装路径选择),然后就可以了。
安装完后,gvim菜单中文出现乱码,在_vimrcset文件中增加:
" 配置多语言环境,解决中文乱码问题
if has("multi_byte")
" UTF-8 编码
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
输入:help(冒号是要输入的),显示中文帮助,说明安装成功:
3、设置语法高亮
编辑安装目录下的_vimrc文件(例如:我的在C:\Program Files (x86)\Vim)
加入以下内容:
set nu!
colorscheme desert
syntax enable
syntax on
再打开gvim,打开一个源代码文件:
这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。
我们还可以让函数名也高亮起来,
这里对C、C++的代码进行配置:在C:\ProgramFiles (x86)\Vim\vim74\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
重新打开gvim,效果如下:
4、程序中跳转
将ctags.exe复制到C:\ProgramFiles (x86)\Vim\vim74下,并编辑_vimrc文件,添加以下内容:
set tags=tags;
set autochdir
然后将C:\ProgramFiles (x86)\Vim\vim74加到环境变量的path中。
具体做法是打开我的电脑,点击系统属性
再点击高级系统设置
点击环境变量
在用户变量里找到PATH,点击编辑
将路径写在变量值里,两个路径间用分号隔开
在需要查看的源代码目录下执行命令ctags -R(也可以在打开你要编辑的文件后点);然后再用gvim打开源代码文件:
按住“CTRL”键,点击对应的函数名或“CTRL+]”,会自动跳转到函数的定义部分,“CTRL+T”则返回;
5、源代码分析工具
将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:\Program Files (x86)\Vim\vim74下的doc及plugin中。
在_vimrc文件中加入以下内容:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
用gvim打开代码文件(已生成过tags文件),输入:Tlist,TagList窗口即出现在左侧。再输入:
:Tlist,左侧栏消失;左侧栏列出了当前文件中的所有宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置相当方便
6、文件浏览组件WinManager
将winmanager.zip解压和拷贝,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:\Program Files (x86)\Vim\vim74下的doc及plugin中
在_vimrc文件中加入以下内容:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle
用gvim打开代码文件,normal状态下输入命令"wm",窗口如下:
左上角是浏览文件的窗口,左下角的是TagList窗口;
7、多文档编辑
解压后将minibufexpl.vim复制到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
用GVIM打开多个源代码文件后,如图:
ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。
解压后把grep.vim文件拷贝到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
nnoremap
由于windows是不自带grep的,所以压缩包中有提供,运行grep-2.5.4-setup.exe就能进行安装,安装后在环境变量中增加grep.exe的路径;
用gvim打开一个源代码文件,光标选择需要查找的内容,按F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果
9、头文件和c/c++文件的快速切换
将a.vim复制到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
nnoremap
用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。
10、高亮书签
将visualmark.vim复制到C:\Program Files (x86)\Vim\vim74\plugin。
用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。
使用F2在书签之间正向切换,shift+F2反向切换。
11、Python代码补全
解压pydiction-1.2.1.rar后,将里面的python_pydiction.vim文件复制到C:\Program Files (x86)\Vim\vimfiles\ftplugin
将complete-dict 和 pydiction.py复制到C:\Program Files (x86)\Vim\vimfiles\ftplugin\pydiction
在_vimrc文件中增加配置如下:
filetype plugin on “启用filetype插件
let g:pydiction_location = 'C:\Program Files (x86)\Vim\vimfiles\ftplugin\pydiction\complete-dict'
let g:pydiction_menu_height = 20 ”设置弹出菜单的高度,默认是15
用gvim打开一个py文件,输入row+[tab],就可以看到自动补全的代码选项了
12、python编译
要编译python首先要在电脑中安装python,运行python-2.7.8.msi进行安装。
解压VimPdb.tar,解压后拷贝VimPdb.py,VimPdb.vim到C:\Program Files (x86)\Vim\vimfiles\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> :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 > :py RemoveBreakpoints()<cr>') vim.command( 'map <C-D> :!python %<cr>') EOF
然后在要调试的代码里面用ctrl-M设断点
ctrl-D运行
13、python代码检查
解压缩pyflakes.rar后把python文件夹复制到C:\Program Files (x86)\Vim\vimfiles\ftplugin目录中,打开一个有问题的python源代码文件,执行命令:cc,即可进行代码检查: