个人使用的.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

""""""""""""""""""""" 编码设置 """""""""""""""""""""""""" 
if has("multi_byte") 
  " 可自动识别的文件类型为带 BOM 字符的 Unicode 文件、UTF-8 编码的文件和 GBK 编码的文件。 
  "set bomb 
  set fileencodings=ucs-bom,utf-8,chinese,taiwan,japan,korea,latin1 
  " CJK environment detection and corresponding setting 
  if v:lang =~ "^zh_CN" 
    " Simplified Chinese, on Unix euc-cn, on MS-Windows cp936 
    set encoding=chinese
    set termencoding=chinese
    if &fileencoding == '' 
      set fileencoding=chinese
    endif 
  elseif v:lang =~ "^zh_TW" 
    " Traditional Chinese, on Unix euc-tw, on MS-Windows cp950 
    set encoding=taiwan 
    set termencoding=taiwan 
    if &fileencoding == '' 
      set fileencoding=taiwan 
    endif 
  elseif v:lang =~ "^ja_JP" 
    " Japanese, on Unix euc-jp, on MS-Windows cp932 
    set encoding=japan 
    set termencoding=japan 
    if &fileencoding == '' 
      set fileencoding=japan 
    endif 
  elseif v:lang =~ "^ko" 
    " Korean on Unix euc-kr, on MS-Windows cp949 
    set encoding=korea 
    set termencoding=korea 
    if &fileencoding == '' 
      set fileencoding=korea 
    endif 
  endif 
   " Detect UTF-8 locale, and override CJK setting if needed 
  if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" 
    set encoding=utf-8 
  endif 
else 
  echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"' 
endif
" 指定菜单语言
set encoding=utf-8
set termencoding=utf-8
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"Chinese in Linux encoding
set fileencodings=ucs-bom,utf-8,cp936,gb18030,gb2312,big5,latin-1
" 设置新文件的编码为 UTF-8
set fileencoding=utf8
"标题栏显示编码类型
auto BufEnter * let &titlestring = hostname() . ":" . expand("%:p") . " (" . &fenc . ")"
"设置为智能缩进
set smartindent
" 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
set display=lastline
"启动时不显示 捐赠提示
set shortmess=atI
"Table为4
set tabstop=4
set cindent shiftwidth=4
set autoindent shiftwidth=4
"SuperTable
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
"zencoding
let g:user_zen_settings = { 
  \  'indentation' : '  ', 
  \  'perl' : { 
  \    'aliases' : { 
  \      'req' : 'require ' 
  \    }, 
  \    'snippets' : { 
  \      'use' : "use strict\nuse warnings\n\n", 
  \      'warn' : "warn \"|\";", 
  \    } 
  \  } 
  \} 
 
  let g:user_zen_expandabbr_key = '<c-e>'    "设置为ctrl+e展开
  let g:use_zen_complete_tag = 1
" 插入模式下上下左右移动光标
inoremap <c-h> <left>
inoremap <c-l> <right>
inoremap <c-j> <c-o>gj
inoremap <c-k> <c-o>gk
"""""""""" 自动补全命令 """"""""""
autocmd Filetype c      set omnifunc=ccomplete#Complete
autocmd Filetype html   set omnifunc=htmlcomplete#CompleteTags
autocmd Filetype xml    set omnifunc=xmlcomplete#CompleteTags
autocmd Filetype python set omnifunc=pythoncomplete#CompleteTags
autocmd Filetype tex    set omnifunc=syntaxcomplete#Complete
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
"语法高亮显示
execute pathogen#infect()
syntax enable
syntax on
colorscheme desert
setlocal cursorline
set cuc
set nobackup
set ai
set si
set showcmd
"fencview编码识别
let g:fencview_autodetect = 0
let g:fencview_checklines = '*'
let g:fenview_progressbar = 1
" F9、F10去除、显示工具、菜单栏 
map <F9> <Esc>:set go=<CR> 
map <F10> <Esc>:set go=mT<CR> 
" F11全屏,F12还原窗口 
map <F11> <Esc>:simalt ~x<CR> 
map <F12> <Esc>:set columns=80 lines=21<cr>
" 自动换行 
set wrap 
"设定显示行数
set number
"设置文件保存格式
set fileformats=dos,unix
" 命令行补全
set wildmenu
"拼写检查
set spell
set title
set showcmd
filetype on 
filetype plugin on
filetype indent on
set completeopt=longest,menu
" 自动补全括号,包括大括号
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf

这个用到三个插件: fencview      zencoding    supertab

fencview :     https://github.com/vim-scripts/FencView.vim

zencoding    https://github.com/mattn/zencoding-vim

supertab       https://github.com/ervandew/supertab

这个vimrc的编码是utf-8编码的, vim vimrc      输入命令set fenc=utf-8  ,然后把上面的代码粘贴。

原文地址:https://www.cnblogs.com/dying/p/3092880.html