我的vim配置

" 按f2切换paste
set pastetoggle=<F2>

" 显示行号
set number

" 命令模式下,在底部显示,当前键入的指令
set showcmd

" 使用 utf-8 编码。
set encoding=utf-8

" 开启文件类型检查,并且载入与该类型对应的缩进规则
" 比如,如果编辑的是.py文件,
" Vim 就是会找 Python 的缩进规则~/.vim/indent/python.vim。
filetype indent on

" 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。
set autoindent

" 按下 Tab 键时,Vim 显示的空格数。
set tabstop=4

" 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)
" 或者==(取消全部缩进)时,每一级的字符数。
set shiftwidth=4

" 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
set expandtab

" Tab 转为多少个空格。
set softtabstop=4

" 搜索时忽略大小写。
set ignorecase

" 自动补全php代码
autocmd FileType php set omnifunc=phpcomplete#CompletePHP

" 映射
let mapleader = ","

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

" 通过F1来切换是否显示行号
nnoremap <F1> :set nu! nu?<cr>

" 使用空格键来选择单词
nnoremap <space> viw

" 使用<leader>sa来完成全选所有文本
nnoremap <leader>sa ggVG

" 使用U来实现恢复操作
nnoremap U <c+r>

" 使用<leader>o来新增一行空白行
nnoremap <leader>o o<esc>

" ,q退出;,q!强制退出;,w保存;,wq保存并退出
nnoremap <leader>q :q<cr>
nnoremap <leader>w :w<cr>
nnoremap <leader>v :NERDTreeFind<CR>
nnoremap <leader>g :NERDTreeToggle<CR>
let NERDTreeShowHidden=1
let NERDTreeIgnore = ['\.pyc','\~$','\.swp', '\.git$']
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }

" 使用jj来代替esc键
inoremap jj <esc>`^
inoremap <C-b> <Backspace>
inoremap <C-d> <Esc>lxi

inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-a> <Esc>0i
inoremap <C-e> <Esc>$a
inoremap <C-o> <Esc>o

" 块选择模式下<来减少缩进,>来添加缩进
vnoremap < <gv
vnoremap > >gv

call plug#begin('~/.vim/plugged')

" 美化插件
Plug 'mhinz/vim-startify'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

" 文件目录管理、文件搜索
Plug 'scrooloose/nerdtree'
Plug 'kien/ctrlp.vim'

" 快速移动
Plug 'easymotion/vim-easymotion'
nmap ss <Plug>(easymotion-s2)

" 成对编辑
Plug 'tpope/vim-surround'

" Initialize plugin system
call plug#end()