Windows下GVIMIDE设置说明.docx
《Windows下GVIMIDE设置说明.docx》由会员分享,可在线阅读,更多相关《Windows下GVIMIDE设置说明.docx(9页珍藏版)》请在冰豆网上搜索。
Windows下GVIMIDE设置说明
WINDOWS下关于GVIM的个人配置说明
说明:
本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在WindowsXP上用gvim建立IDE环境时所作的备忘。
原作地址:
需要特别指出的是:
本文中的_vimrc文件事在安装路径下:
C:
\ProgramFiles\Vim\_vimrc
0.准备软件及插件。
(a)gvim72.exe 地址ftp:
//ftp.vim.org/pub/vim/pc/gvim72.exe。
(b)vimcdoc-1.7.0-setup.exe 地址
(c)ec57w32.zip 地址
(d)taglist_45.zip 地址http:
//www.vim.org/scripts/download_script.php?
src_id=7701
(e)winmanager.zip 地址http:
//www.vim.org/scripts/download_script.php?
src_id=754
(f)minibufexpl.vim 地址http:
//www.vim.org/scripts/download_script.php?
src_id=3640
(g)a.vim 地址http:
//www.vim.org/scripts/download_script.php?
src_id=7218
(h)grep.vim 地址http:
//www.vim.org/scripts/download_script.php?
src_id=7645
(i)visualmark.vim 地址http:
//www.vim.org/scripts/download_script.php?
src_id=4700
1.安装gvim7.2
运行gvim72.exe,选择完全安装(Full),我的安装目录是默认的C:
\ProgramFiles\Vim。
安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。
2.安装中文帮助手册
运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。
安装完毕后重新打开gvim,:
help 时帮助手册已经是中文的了。
进行到这一步时,我的gvim菜单处的中文出现了乱码。
方法一:
在网上寻找解决方案,将C:
\ProgramFiles\Vim\vim72下名为 lang 的文件夹删去,使菜单语言变为英语。
{不推荐该方法}
方法二:
或者可以在在_vimrc文件中增加如下脚本代码:
"配置多语言环境,解决中文乱码问题
ifhas("multi_byte")
"UTF-8编码
setencoding=utf-8
settermencoding=utf-8
setformatoptions+=mM
setfencs=utf-8,gbk
ifv:
lang=~?
'^/(zh/)/|/(ja/)/|/(ko/)'
setambiwidth=double
endif
ifhas("win32")
source$VIMRUNTIME/delmenu.vim
source$VIMRUNTIME/menu.vim
languagemessageszh_CN.utf-8
endif
else
echoerr"Sorry,thisversionof(g)vimwasnotcompiledwith+multi_byte"
endif
3.语法高亮。
首先,编辑_vimrc文件加入以下内容:
setnu!
colorschemedesert
syntaxenable
syntaxon
这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。
我们还可以让函数名也高亮起来,在C:
\ProgramFiles\Vim\vim72\syntax下找到 c.vim 和 cpp.vim,分别添加以下内容:
synmatchcFunction"\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
synmatchcFunction"\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hicFunctiongui=NONEguifg=#B5A1FF
重新打开gvim,效果如下:
4.程序中跳转。
将ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制C:
\ProgramFiles\Vim\vim72下,并编辑_vimrc文件,添加以下内容:
settags=tags;
setautochdir
打开cmd命令行,切换到你要查看的源代码的根目录处,运行
ctags-R
将会在此目录处生成一个tags文件。
用gvim打开一个代码文件,将光标放到某一函数名上,如下图的UpdateViewByPosNo(),按下"ctrl+]",
光标会自动跳转到定义处。
按下"ctrl+T"会跳回到原来的位置。
变量、结构体、宏等等,都可以这样做。
当你的源文件有更新时,只能重新运行ctags-R命令,来更新tags文件。
5.窗口管理。
将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:
\ProgramFiles\Vim\vim72下的doc及plugin中。
在_vimrc文件中加入以下内容:
letTlist_Show_One_File=1
letTlist_Exit_OnlyWindow=1
用gvim打开代码文件(已生成过tags文件),:
Tlist,TagList窗口即出现在左侧。
用相同的方法将winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:
letg:
winManagerWindowLayout='FileExplorer|TagList'
nmapwm:
WMToggle
用gvim打开代码文件,normal状态下输入命令"wm",窗口如下
其中左上是netrw窗口(浏览文件),左下是TagList窗口,再次输入"wm"时这两个窗口会关闭。
6.多文件编辑。
将minibufexpl.vim复制到C:
\ProgramFiles\Vim\vim72\plugin,在_vimrc中添加:
letg:
miniBufExplMapCTabSwitchBufs=1
letg:
miniBufExplMapWindowsNavVim=1
letg:
miniBufExplMapWindowNavArrows=1
当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图
ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。
7.快速切换头文件/源文件。
将a.vim复制到C:
\ProgramFiles\Vim\vim72\plugin,在_vimrc中添加:
nnoremap:
A
用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:
A实现。
8.在工程中快速查找。
将grep.vim复制到C:
\ProgramFiles\Vim\vim72\plugin,在_vimrc中添加:
nnoremap:
Grep
用gvim打开源码文件,并将光标定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。
如下图
确定查找内容时,支持正则表达式。
9.高亮的书签。
将visualmark.vim复制到C:
\ProgramFiles\Vim\vim72\plugin。
用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。
使用F2在书签之间正向切换,shift+F2反向切换。
10.不生成备份文件:
在C:
\ProgramFiles\Vim\vim72\下的vimrc_expamle.vim中,修改:
ifhas(“vim”)
setnobackup
else
setbackup
为
ifhas(“vim”)
setnobackup
else
setnobackup
11.自动生成文件头
在_vimrc文件中添加如下注释代码,用户可根据需求进行修改,语法很简单,请琢磨一番:
nnoremap:
Grep
"进行版权声明的设置
"添加或更新头
map:
callTitleDet()'s
functionAddTitle()
callappend(0,"/*")
callappend(1,"*Copyright(C)2016RuijieNetwork.Allrightsreserved.")
callappend(2,"*/")
callappend(3,"/*=============================================================================")
callappend(4,"*Filename:
".expand("%:
t"))
callappend(5,"*Description:
")
callappend(6,"*OriginAuthor:
renlanhui")
callappend(7,"*Email:
renlanhui@")
callappend(8,"*Lastmodified:
".strftime("%Y-%m-%d%H:
%M"))
callappend(9,"*History:
")
callappend(10,"=============================================================================*/")
callappend(11,"")
echohlWarningMsg|echo"Successfulinaddingthecopyright."|echohlNone
endf
"更新最近修改时间和文件名
functionUpdateTitle()
normalm'
execute'/**Lastmodified:
/s@:
.*$@\=strftime(":
%Y-%m-%d%H:
%M")@'
normal''
normalmk
execute'/**Filename:
/s@:
.*$@\=":
".expand("%:
t")@'
execute"noh"
normal'k
echohlWarningMsg|echo"Successfulinupdatingthecopyright."|echohlNone
endfunction
"判断前10行代码里面,是否有Lastmodified这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
functionTitleDet()
letn=1
"默认为添加
whilen<12
letline=getline(n)
ifline=~'^\*\s*\S*Last\smodified\S*.*$'
callUpdateTitle()
return
endif
letn=n+1
endwhile
callAddTitle()
endfunction