1、Windows下GVIMIDE设置说明WINDOWS下关于GVIM的个人配置说明说明:本文是作者在完全按照著名的手把手教你把Vim改装成一个IDE编程环境一文,在Windows XP上用gvim建立IDE环境时所作的备忘。原作地址:需要特别指出的是:本文中的_vimrc文件事在安装路径下:C:Program FilesVim_vimrc0.准备软件及插件。(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
2、:/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.o
3、rg/scripts/download_script.php?src_id=7645(i)visualmark.vim地址http:/www.vim.org/scripts/download_script.php?src_id=47001.安装gvim7.2运行gvim72.exe,选择完全安装(Full),我的安装目录是默认的C:Program FilesVim。安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。2.安装中文帮助手册运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。安装完毕后重新打开gvim,:help时帮助手
4、册已经是中文的了。进行到这一步时,我的gvim菜单处的中文出现了乱码。方法一:在网上寻找解决方案,将C:Program FilesVimvim72下名为lang的文件夹删去,使菜单语言变为英语。不推荐该方法方法二:或者可以在在_vimrc文件中增加如下脚本代码:配置多语言环境,解决中文乱码问题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 a
5、mbiwidth=double endif if has(win32) source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim language messages zh_CN.utf-8 endifelse echoerr Sorry, this version of (g)vim was not compiled with +multi_byteendif3.语法高亮。首先,编辑_vimrc文件加入以下内容:set nu!colorscheme desertsyntax enablesyntax on这些设置使得gvim可以显示行
6、号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。我们还可以让函数名也高亮起来,在C:Program FilesVimvim72syntax下找到c.vim和cpp.vim,分别添加以下内容:syn match cFunction ()*)(me=e-2syn match cFunction s*(me=e-1hi cFunction gui=NONE guifg=#B5A1FF重新打开gvim,效果如下:4.程序中跳转。将ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制C:ProgramFilesVimvim72下,
7、并编辑_vimrc文件,添加以下内容:set tags=tags;set autochdir打开cmd命令行,切换到你要查看的源代码的根目录处,运行ctags -R将会在此目录处生成一个tags文件。用gvim打开一个代码文件,将光标放到某一函数名上,如下图的UpdateViewByPosNo(),按下ctrl+,光标会自动跳转到定义处。按下ctrl+T会跳回到原来的位置。变量、结构体、宏等等,都可以这样做。当你的源文件有更新时,只能重新运行ctags -R命令,来更新tags文件。5.窗口管理。将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容
8、分别复制到C:Program FilesVimvim72下的doc及plugin中。在_vimrc文件中加入以下内容:let Tlist_Show_One_File=1let Tlist_Exit_OnlyWindow=1用gvim打开代码文件(已生成过tags文件),:Tlist,TagList窗口即出现在左侧。用相同的方法将winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:let g:winManagerWindowLayout=FileExplorer|TagListnmap wm :WMToggle用gvim打开代码文件,normal状态下输入命令wm,窗口如下
9、其中左上是netrw窗口(浏览文件),左下是TagList窗口,再次输入wm时这两个窗口会关闭。6.多文件编辑。将minibufexpl.vim复制到C:Program FilesVimvim72plugin,在_vimrc中添加:let g:miniBufExplMapCTabSwitchBufs=1let g:miniBufExplMapWindowsNavVim=1let g:miniBufExplMapWindowNavArrows=1当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图ctrl+Tab,切换到前一个buffer,并在当前窗口打开
10、文件;ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;ctrl+箭头键,可以切换到上下左右窗口中;ctrl+h,j,k,l,切换到上下左右的窗口中。7.快速切换头文件/源文件。将a.vim复制到C:Program FilesVimvim72plugin,在_vimrc中添加:nnoremap :A用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。8.在工程中快速查找。将grep.vim复制到C:Program FilesVimvim72plugin,在_vimrc中添加:nnoremap :Grep用gvim打开源码文件,并将光标
11、定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。如下图确定查找内容时,支持正则表达式。9.高亮的书签。将visualmark.vim复制到C:Program FilesVimvim72plugin。用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。使用F2在书签之间正向切换,shift+F2反向切换。10. 不生成备份文件:在C:Program FilesVimvim72下的vimrc_expamle.vim中,修改:if has(“vim”) set nobackupels
12、e set backup为if has(“vim”) set nobackupelse set nobackup11. 自动生成文件头在_vimrc文件中添加如下注释代码,用户可根据需求进行修改,语法很简单,请琢磨一番:nnoremap :Grep进行版权声明的设置添加或更新头map :call TitleDet()sfunction AddTitle() call append(0,/*) call append(1, * Copyright(C) 2016 Ruijie Network. All rights reserved.) call append(2, */) call appen
13、d(3,/*=) call append(4,* Filename : .expand(%:t) call append(5,* Description : ) call append(6,* Origin Author: renlanhui) call append(7,* Email : renlanhui) call append(8,* Last modified: .strftime(%Y-%m-%d %H:%M) call append(9,* History : ) call append(10,=*/) call append(11,) echohl WarningMsg |
14、echo Successful in adding the copyright. | echohl Noneendf更新最近修改时间和文件名function UpdateTitle() normal m execute / * *Last modified:/s:.*$=strftime(: %Y-%m-%d %H:%M) normal normal mk execute / * *Filename :/s:.*$=: .expand(%:t) execute noh normal k echohl WarningMsg | echo Successful in updating the copy right. | echohl Noneendfunction判断前10行代码里面,是否有Last modified这个单词,如果没有的话,代表没有添加过作者信息,需要新添加;如果有的话,那么只需要更新即可function TitleDet() let n=1 默认为添加 while n 12 let line = getline(n) if line = *s*S*LastsmodifiedS*.*$ call UpdateTitle() return endif let n = n + 1 endwhile call AddTitle()endfunction
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1