[转]Winxp下 gvim 编程环境搭建

Posted by abloz on July 30, 2010

from:http://blog.csdn.net/minico/archive/2007/12/15/1938050.aspx

Winxp下 gvim 编程环境搭建

1.官方网站下载最新的gvim7.1 win32,然后选择完全安装;我是安装在d:vim目录下面,安装后的目录结构如下: **D:VIM ├─vim71 **│ ├─autoload │ ├─colors │ ├─compiler │ ├─doc │ ├─ftplugin │ ├─indent │ ├─keymap │ ├─lang │ ├─macros │ ├─plugin │ ├─spell │ ├─syntax │ ├─tools │ └─tutor **└─vimfiles **├─after ├─autoload ├─colors ├─compiler ├─doc ├─ftdetect ├─ftplugin ├─indent ├─keymap ├─plugin └─syntax

2.安装常用插件:

vimdoc http://vcd.gro.clinux.org    (中文)
安装 直接安装即可,安装时会自动搜索到vim的安装位置,然后安装到相应的目录
使用 :h
说明 中文帮助文档
taglist http://www.vim.org/scripts/script.php?script_id=273
安装 解压到vim71目录下面
使用 :Tlist
说明 需要Ctags产生的tags文件配合
WinManager http://www.vim.org/scripts/script.php?script_id=95
安装 解压到vim71目录下面
使用 wm,这个命令是通过在_vimrc中配置后才能有,具体配置见后面的_vimrc文件
说明 此插件的作用是将TagList窗口和netrw窗口整合起来
Ctags http://ctags.sourceforge.net
安装 解压到vim71目录下面
使用 ctags -R --c++-kinds=+p --fields=+iaS --extra=+q src 在对C++文件进行补全时,OmniCppComplete插件需要在标签文件中包含C++的额外信息,因此上面的ctags命令不同于以前我们所使用的,它专门为C++语言生成一些额外的信息.
说明 其实只是一个ctags.exe文件,用来产生tags文件供其它插件使用
MiniBufExplorer http://www.vim.org/scripts/script.php?script_id=159
安装 将minibufexpl.vim放 到vim71/plugin 文件夹中即可;
使用 打开多个文件后,自动在顶端出现文件标签,双击鼠标或者Ctrl+tab键可以切换文件;
说明
grep http://www.vim.org/scripts/script.php?script_id=311
安装 将grep.vim放 到vim71/plugin 文件夹中即可;
使用 安装后会在菜单=》工具中增加search子菜单,也可以用命令:grep或者按照后面给出的_vimrc文件映射快捷键F3
说明 需要windows版本的grep.exe程序配合; 到http://unxutils.sourceforge.net/下载unxutils工具包里面包含grep.exe,把grep.exe放到系统c:windowssystem32下面即可。
omnicppcomplete http://www.vim.org/scripts/script.php?script_id=1520
安装 解压到vimfiles目录下面;
使用 配合后面的supertab插件,使用Tab键进行自动完成;
说明 如果要对c++文件进行自动完成,需要生成tag文件时用特殊的选项,见后面的_vimrc配置文件
a http://www.vim.org/scripts/script.php?script_id=31
安装 将a.vim放 到vim71/plugin 文件夹中即可;
使用 :A
说明 在源文件和头文件之间进行切换
Supertab http://www.vim.org/scripts/script.php?script_id=1643
安装 将supertab.vim放 到vim71/plugin 文件夹中即可;
使用 配合前面的omnicppcomplete插件,使用Tab键进行自动完成;
说明
NERD_commenter http://www.vim.org/scripts/script.php?script_id=1218
安装 解压到vim71目录下面
使用 http://xiaobo.spaces.live.com/blog/cns!5ec21dee9b73c1a8!814.entry
说明
lookupfile http://www.vim.org/scripts/script.php?script_id=1581
安装 解压到vimfiles目录下面;
使用 根据后面的_vimrc配置文件,使用F5键打开搜索窗口;Tab键进行选择
说明 依赖于插件genutils
genutils http://www.vim.org/scripts/script.php?script_id=197
安装 解压到vimfiles目录下面;
使用 这个插件提供了一些通用的函数,可供其它的脚本使用
说明 供lookupfile插件使用
clearcase [http://p.blog.csdn.net/images/p_blog_csdn_net/minico/EntryImages/20081123/gvim.JPG](http://p.blog.csdn.net/images/p_blog_csdn_net/minico/EntryImages/20081123/gvim.JPG)
安装 解压到vimfiles目录下面;
使用 这个插件提供一些常用的clearcase命令
说明

3._vimrc配置文件

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 "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " Add by minico---begin "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "设置帮助语言 set helplang=cn,en "把gui的工具栏去掉(要去掉,把等号前面的加号变成一个减号即可) set guioptions+=T "把gui的右边的滑动条去掉 set guioptions+=r "把gui的左边的滑动条去掉 set guioptions-=L "把gui的菜单去掉 set guioptions+=m filetype on let Tlist_Show_Menu = 1 " 这项必须设定,否则出错,配置taglist的ctags路径 "let Tlist_Ctags_Cmd = 'D:Vimvim71ctags.exe' "设置Taglist let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 " 使用F8打开Taglist nnoremap :TlistToggle "设置窗口大小和位置 set lines=80 set columns=200 winpos 0 0 "设置tags文件路径 set tags=G:lwiptags "设置文件浏览器窗口显示方式 "通过WinManager插件来将TagList窗口和netrw窗口整合起来 let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle "设置SuperTab,用tab键打开cppcomplet的自动补全功能。 let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="" "显示行号 set number "打开语法高亮显示功能 syntax enable syntax on "设置主题颜色 colorscheme desert "则可以用<C-h,j,k,l>切换到上下左右的窗口中去 let g:miniBufExplMapWindowNavVim = 1 "按F12时在一个新的buffer中打开ch文件 nnoremap :A "用F3调用grep查找当前光标所在处的字符串 nnoremap :Grep "为了使用智能补全,打开文件类型检测,关闭VI兼容模式 filetype plugin indent on set nocp "关掉智能补全时的预览窗口,这样可以防止闪屏现象 set completeopt=longest,menu "====================Lookupfile 相关设置======================================== let g:LookupFile_MinPatLength = 2               "最少输入2个字符才开始查找 let g:LookupFile_PreserveLastPattern = 0        "不保存上次查找的字符串 let g:LookupFile_PreservePatternHistory = 1     "保存查找历史 let g:LookupFile_AlwaysAcceptFirst = 1          "回车打开第一个匹配项目 let g:LookupFile_AllowNewFiles = 0              "不允许创建不存在的文件 if filereadable("./filenametags")                "设置tag文件的名字 let g:LookupFile_TagExpr = '"./filenametags"' endif "nmap lk LookupFile   "映射LookupFile为,lk "nmap ll :LUBufs            "映射LUBufs为,ll "nmap lw :LUWalk            "映射LUWalk为,lw "有了上面的定义,当我输入”,lk”时,就会在tag文件中查找指定的文件名; "当输入”,ll”时,就会在当前已打开的buffer中查找指定名字的buffer; "当输入”,lw”时,就会在指定目录结构中查找。 "在用lookupfile插件查找文件时,是区分文件名的大小写的, "如果想进行忽略大小写的匹配,把下面这段代码加入你的vimrc中, "就可以每次在查找文件时都忽略大小写查找了: " lookup file with ignore case function! LookupFile_IgnoreCaseFunc(pattern) let _tags = &tags try let &tags = eval(g:LookupFile_TagExpr) let newpattern = 'c' . a:pattern let tags = taglist(newpattern) catch echohl ErrorMsg | echo "Exception: " . v:exception | echohl NONE return "" finally let &tags = _tags endtry " Show the matches for what is typed so far. let files = map(tags, 'v:val["filename"]') return files endfunction let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc' "====================Lookupfile 相关设置 end======================================== "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " Add by minico---end "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ </td> </tr> </tbody> </table> 4.实际效果: ![](http://p.blog.csdn.net/images/p_blog_csdn_net/minico/EntryImages/20081123/gvim.JPG) ![](http://p.blog.csdn.net/images/p_blog_csdn_net/minico/2.JPG) 5.参考文档: (1)http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx (2)http://blog.csdn.net/easwy/category/234641.aspx