我的Gvim配置文件

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



"=========================================================================
" DesCRiption: 我的的vimrc文件,for Linux/Windows, GUI/Console
"
" Last Change: 2012年04月14日 15时13分 
"
" Name:        ZhaoHuanLei
"
"=========================================================================
set nocompatible            " 关闭 vi 兼容模式
syntax on                   " 自动语法高亮
colorscheme molokai         " 设定配色方案
set number                  " 显示行号
set cursorline              " 突出显示当前行
filetype plugin indent on   " 开启插件 
set ruler                   " 打开状态栏标尺
set tabstop=4               " 设定 tab 长度为 4
set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格
set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4
set autochdir               " 自动切换当前目录为当前文件所在的目录
set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan              " 禁止在搜索到文件两端时重新搜索
set incsearch               " 输入搜索内容时就显示搜索结果
set hlsearch                " 搜索时高亮显示被找到的文本
set noerrorbells            " 关闭错误信息响铃
set novisualbell            " 关闭使用可视响铃代替呼叫
set t_vb=                   " 置空错误铃声的终端代码
filetype plugin indent on   " 开启插件
set guioptions-=T           " 隐藏工具栏
" set guioptions-=m         " 隐藏菜单栏
set history=400             " vim记住的历史操作的数量,默认的是20
set autoread                " 当文件在外部被修改时,自动重新读取
vmap <C-c> "+y              " 选中状态下 Ctrl+c 复制





" ---------- 判断系统: windows,or linux, mac -------------
function! MySys()
    if has("win16") || has("win32") || has("win64") || has("win95")
        return "windows"
    elseif has("unix")
        return "linux"
    endif
endfunction


" -------------------- 设定doc文档目录 --------------------
let helptags=$VIMFILES.'/doc'


" ------------------ 设置字体 以及中文支持 ----------------
if has("win32")
    set guifont=DeJaVu_Sans_Mono:h10:cANSI
    set gfw=YouYuan:h10:cGB2312
endif


" -------------------- 配置多语言环境 ---------------------
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





" ---------------------- jQuery 语法高亮 ----------------------
au BufRead,BufNewFile jquery.*.js set ft=javascript syntax=jquery


" Tab操作快捷方式!
" nnoremap <C-TAB> :tabnext<CR>
" nnoremap <C-S-TAB> :tabprev<CR>


" --------------------- 自动完成括号和引号 --------------------
inoremap ( ()<Esc>i
inoremap [ []<Esc>ii
autocmd Syntax css inoremap { {}<Esc>i
"javascript中自动匹配 {} 并自动换行
autocmd Syntax javascript inoremap { {<CR>}<Esc>O 
"html中自动匹配 <>
"autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR> 
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
inoremap } <c-r>=CloseBracket()<CR>
inoremap " <c-r>=QuoteDelim('"')<CR>
inoremap ' <c-r>=QuoteDelim("'")<CR>

function ClosePair(char)
 if getline('.')[col('.') - 1] == a:char
 return "\<Right>"
 else
 return a:char
 endif
endf

function CloseBracket()
 if match(getline(line('.') + 1), '\s*}') < 0
 return "\<CR>}"
 else
 return "\<Esc>j0f}a"
 endif
endf

function QuoteDelim(char)
 let line = getline('.')
 let col = col('.')
 if line[col - 2] == "\\"
 "Inserting a quoted quotation mark into the string
 return a:char
 elseif line[col - 1] == a:char
 "Escaping out of the string
 return "\<Right>"
 else
 "Starting a string
 return a:char.a:char."\<Esc>i"
 endif
endf




" ------------------ syntax javascript.vim JS折叠  -----------------
" 打开javascript折叠
" 打开javascript对dom、html和css的支持
" 用空格键来开关折叠
let b:javascript_fold=1
let javascript_enable_domhtmlcss=1               
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>




" ----------------- MiniBufExplorer.vim 多标签切换 ---------------
" <C-Tab>    向前循环切换到每个buffer上,并在但前窗口打开
" <C-S-Tab>    向后循环切换到每个buffer上,并在但前窗口打开
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1 


" ------------ NERD_tree.vim 浏览系统中的文件和目录 --------------
" :ERDtree 打开NERD_tree         :NERDtreeClose    关闭NERD_tree
" o 打开关闭文件或者目录         t 在标签页中打开
" T 在后台标签页中打开           ! 执行此文件
" p 到上层目录                   P 到根目录
" K 到第一个节点                 J 到最后一个节点
" u 打开上层目录                 m 显示文件系统菜单(添加、删除、移动操作)
" r 递归刷新当前目录             R 递归刷新当前根目录
" F3 NERDTree 切换
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC>:NERDTreeToggle<CR>


" ------------- ZenCoding.vim 快速输入 Html及CSS 代码 ------------
" Ctrl + y + , 默认快捷键启动
" 设置为ctlr+j扩展 
let g:user_zen_expandabbr_key = '<c-j>' 


" ------------------ authorinfo.vim 添加作者信息 ------------------ 
" 设置快捷键为<F4>
nmap <F4> :AuthorInfoDetect<cr>
let g:vimrc_author='ZhaoHuanLei' 
let g:vimrc_email='huanleiwork@gmail.com' 
let g:vimrc_homepage='http://www.cnblogs.com/huanlei/'

" -------------- NERD_commenter.vim   注释代码用的 ----------------
" [count],cc 光标以下count行逐行添加注释(7,cc)
" [count],cu 光标以下count行逐行取消注释(7,cu)
" [count],cm 光标以下count行尝试添加块注释(7,cm)
" cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
" 注:count参数可选,无则默认为选中行或当前行
" 可视(V)模式中选择一段代码,按下\cc加逐行注释,\cu取消注释,\cm添加块注释
let NERDSpaceDelims=1       " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1   " 多行注释时样子更好看


" ---------– checksyntax.vim  JavaScript常见语法错误检查 -----------
" 默认快捷方式为 F5
" let g:checksyntax_auto = 0 " 不自动检查


" ---------– autocomplpop.vim  实现自动补全功能 -----------





"=========================================================================
" plugin – vim
"=========================================================================
原文地址:https://www.cnblogs.com/huanlei/p/2447179.html