1 Star 0 Fork 0

老朱 / vimrc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
.vimrc 34.35 KB
一键复制 编辑 原始数据 按行查看 历史
老朱 提交于 2016-09-07 23:50 . update
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
" =============================================================================
" << 判断操作系统是 Windows 还是 Linux 和判断是终端还是 Gvim >>
" =============================================================================
" -----------------------------------------------------------------------------
" < 判断操作系统是 Windows 还是 mac 还是 Linux >
" -----------------------------------------------------------------------------
if(has("mac") )
" macvim不支持 alt+Num alt+char 快捷键映射
let g:ismac = 1
else
let g:ismac = 0
endif
let g:iswindows = 0
" -----------------------------------------------------------------------------
" < 判断是终端还是 Gvim >
" -----------------------------------------------------------------------------
if has("gui_running")
let g:isGUI = 1
else
let g:isGUI = 0
endif
" -----------------------------------------------------------------------------
" < Linux Gvim/Vim 默认配置> 做了一点修改
" -----------------------------------------------------------------------------
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
" -----------------------------------------------------------------------------
" < 基本配置 >
" -----------------------------------------------------------------------------
if has("syntax")
syntax on
endif
set hlsearch "高亮搜索
set incsearch "在输入要搜索的文字时,实时匹配
" set noincsearch "在输入要搜索的文字时,取消实时匹配
set mouse=a " 在任何模式下启用鼠标
set t_Co=256 " 在终端启用256
set backspace=2 " 设置退格键可用
set smarttab "指定按一次backspace就删除shiftwidth宽度的空格
set smartindent "启用智能对齐方式
" set ignorecase "搜索模式里忽略大小写
set smartcase "如果搜索模式包含大写字符,不使用 'ignorecase' 选项,只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用
set expandtab "将Tab键转换为空格
set tabstop=4 "设置Tab键的宽度
set shiftwidth=4 "换行时自动缩进4个空格
set foldenable "启用折叠
" set foldmethod=indent "indent 折叠方式
" set foldmethod=marker "marker 折叠方式
" set foldmethod=manual "marker 折叠方式
set number "显示行号
set nocompatible "禁用 Vi 兼容模式
set hidden
set novisualbell "禁用闪屏提示
" set nowrap "设置不自动换行
winpos 100 10 "指定窗口出现的位置,坐标原点在屏幕左上角
set writebackup "保存文件前建立备份,保存成功后删除该备份
set nobackup "设置无备份文件
set noswapfile "设置无临时文件
set vb t_vb= "关闭提示音
" 设置代码配色方案
if g:ismac
if has("gui_macvim")
let macvim_hig_shift_movement = 1
let macvim_skip_cmd_opt_movement = 1
endif
set guifont=Ubuntu\ Mono\ derivative\ Powerline\:h16,Consolas:h16,Courier\ New:h16,Courier:h16,SimSun:h16 " MacOS win字体设置格式
else
set guifont=ubuntu\ mono\ derivative\ powerline\ 12,Courier\ New\ 12,Courier\ 12,Consolas\ 12 "GTK GUI字体设置格式
endif
" 技巧在命令模式下输入`:set guifont=*`可以弹出所有可用字体列表,并且选择即可预览(适用于win32,GTK,Motif,MacOS和Photon)
if g:isGUI
" au GUIEnter * simalt ~x "窗口启动时自动最大化
set lines=60 columns=200 "指定窗口大小,lines为高度,columns为宽度
" set cursorline "突出显示当前行
set background=dark
" colorscheme solarized
colorscheme molokai
" 显示/隐藏菜单栏、工具栏、滚动条,可用 Ctrl + F11 切换
set guioptions-=m
set guioptions-=T
set guioptions-=r
set guioptions-=L
map <silent> <c-F11> :if &guioptions =~# 'm' <Bar>
\set guioptions-=m <Bar>
\set guioptions-=T <Bar>
\set guioptions-=r <Bar>
\set guioptions-=L <Bar>
\else <Bar>
\set guioptions+=m <Bar>
\set guioptions+=T <Bar>
\set guioptions+=r <Bar>
\set guioptions+=L <Bar>
\endif<CR>
if g:iswindows
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set guifont=courier_new:h12,msyh:h8
"解决consle输出乱码
language messages zh_CN.utf-8
endif
else
" set background=dark
colorscheme desert_terminal "终端配色方案
endif
" -----------------------------------------------------------------------------
" < 编码配置 >
" -----------------------------------------------------------------------------
" 注:使用utf-8格式后,软件与程序源码、文件路径不能有中文,否则报错
set encoding=utf-8 "设置gvim内部编码
set fileencoding=utf-8 "设置当前文件编码
set fileencodings=ucs-bom,utf-8,gbk,cp936,latin-1 "设置支持打开的文件的编码
" 文件格式,默认 ffs=dos,unix
set fileformat=unix "设置新文件的<EOL>格式
set fileformats=unix,dos,mac "给出文件的<EOL>格式类型
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.rar,.idea,*.png,*.jpg,*.exe,*.dll,*.gif,*.pdf "设置全局忽略的二进制文件和临时文件
" 个性化状栏(这里提供两种方式,要使用其中一种去掉注释即可,不使用反之)
" let &statusline=' %t %{&mod?(&ro?"*":"+"):(&ro?"=":" ")} %1*|%* %{&ft==""?"any":&ft} %1*|%* %{&ff} %1*|%* %{(&fenc=="")?&enc:&fenc}%{(&bomb?",BOM":"")} %1*|%* %=%1*|%* 0x%B %1*|%* (%l,%c%V) %1*|%* %L %1*|%* %P'
set statusline=%t\ %1*%m%*\ %1*%r%*\ %2*%h%*%w%=%l%3*/%L(%p%%)%*,%c%V]\ [%b:0x%B]\ [%{&ft==''?'TEXT':toupper(&ft)},%{toupper(&ff)},%{toupper(&fenc!=''?&fenc:&enc)}%{&bomb?',BOM':''}%{&eol?'':',NOEOL'}]
" -----------------------------------------------------------------------------
" < 编写文件时的配置 >
" -----------------------------------------------------------------------------
" =============================================================================
" << 以下为用户自定义配置 >>
" =============================================================================
" -----------------------------------------------------------------------------
" < Vundle 插件管理工具配置 >
" -----------------------------------------------------------------------------
" 用于更方便的管理vim插件,具体用法参考 :h vundle 帮助
" 安装方法为在终端输入如下命令
" git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
call plug#begin('~/.vim/plugged')
" filetype off "vundle插件需要filetype off
" if !g:iswindows
" set rtp+=~/.vim/bundle/vundle/
" else
" set rtp+=$VIM/vimfiles/bundle/vundle/
" endif
" call vundle#begin()
" 使用Vundle来管理Vundle,这个必须要有。 on
" Plugin 'gmarik/vundle'
if g:isGUI
" 需要ctags支持的插件
" taglist和tagbar一般只需要使用其中之一
Plug 'vim-scripts/taglist.vim'
" 支持php5.3新特性的自动完成插件 ,需要编译php补丁版ctags
" https://github.com/shawncplus/phpcomplete.vim/wiki/Patched-ctags
" ctags -R --fields=+aimSl --languages=php 生成php项目的tags文件
"
" 多光标选择插件,有时会导致崩溃
Plug 'terryma/vim-multiple-cursors'
Plug '907th/vim-auto-save'
Plug 'shawncplus/phpcomplete.vim'
Plug 'SirVer/ultisnips'
Plug '2072/PHP-Indenting-for-VIm'
Plug 'thinca/vim-quickrun'
Plug 'L9'
" 支持coffee文件的锁紧高亮编译
Plug 'kchmck/vim-coffee-script'
" 功能强大的对齐插件
Plug 'vim-scripts/Align'
" 相对行号插件
Plug 'myusuf3/numbers.vim'
" 保存文件时进行语法检查
Plug 'scrooloose/syntastic'
" 快速分割和合并特定类型的代码,例如php数组
Plug 'AndrewRadev/splitjoin.vim'
" 快速对齐
Plug 'junegunn/vim-easy-align'
" 列选择的数字或字母递增插件
Plug 'triglav/vim-visual-increment'
Plug 'othree/html5.vim'
" . 符号增强,文件保存后,保存之前的操作不能用.重复
Plug 'derekwyatt/vim-fswitch'
Plug 'xolox/vim-misc'
Plug 'pangloss/vim-javascript'
Plug 'skammer/vim-css-color'
Plug 'hail2u/vim-css3-syntax'
" haml sass scss支持插件
Plug 'tpope/vim-haml'
Plug 'groenewege/vim-less'
Plug 'tpope/vim-dispatch'
Plug 'wesleyche/SrcExpl'
Plug 'godlygeek/tabular'
if (g:iswindows)
Plug 'suxpert/vimcaps' "插件不兼容macvim和mac的命令行vim
endif
Plug 'tpope/vim-jdaddy'
Plug 'jaxbot/browserlink.vim'
Plug 'airblade/vim-gitgutter'
" 支持许多的js库和框架的语法完成
Plug 'othree/javascript-libraries-syntax.vim'
endif
" ============
"
" gvim和vim都用到的插件
"
" ============
Plug 'vim-scripts/dbext.vim'
Plug 'plasticboy/vim-markdown'
Plug 'szw/vim-ctrlspace'
Plug 'Valloric/YouCompleteMe' , { 'do': './install.ph' }
Plug 'bling/vim-airline'
" 注释插件
Plug 'scrooloose/nerdcommenter'
" 对 %号功能进行增强
Plug 'vim-scripts/matchit.zip'
Plug 'scrooloose/nerdtree'
Plug 'ivalkeen/nerdtree-execute'
Plug 'tpope/vim-surround'
Plug 'tomtom/tlib_vim'
Plug 'mattn/emmet-vim'
Plug 'kien/ctrlp.vim'
Plug 'tacahiroy/ctrlp-funky'
Plug 'ivalkeen/vim-ctrlp-tjump'
Plug 'FelikZ/ctrlp-py-matcher'
" 快速移动光标插件
Plug 'Lokaltog/vim-easymotion'
" 窗口调整
Plug 'jimsei/winresizer'
Plug 'kana/vim-textobj-user'
" ai/ii aI/iI
Plug 'kana/vim-textobj-indent'
" af/if 目前只有c和vim脚本的ft插件文件
Plug 'kana/vim-textobj-function'
" a,/i,
Plug 'sgur/vim-textobj-parameter'
" a_/i_ _aaa_
Plug 'lucapette/vim-textobj-underscore'
" au/iu
Plug 'mattn/vim-textobj-url'
" aP/iP
Plug 'akiyan/vim-textobj-php'
" al/il
Plug 'kana/vim-textobj-line'
" ac/ic/aC
Plug 'glts/vim-textobj-comment'
" ao/io for a block of indentation (i.e. spaces)
Plug 'glts/vim-textobj-indblock'
" as/is for a sentence of prose (overrides hard-coded native object & motion)
Plug 'reedes/vim-textobj-sentence'
" aS/iS for a region filled with various space characters
Plug 'saihoooooooo/vim-textobj-space'
Plug 'mhinz/vim-startify'
" 质量最好的括号自动完成插件,不会与其他插件有冲突
Plug 'kana/vim-smartinput'
" 通过+ _号选择内容插件
Plug 'terryma/vim-expand-region'
Plug 'tpope/vim-repeat'
Plug 't9md/vim-choosewin'
Plug 'mileszs/ack.vim'
Plug 'mtth/locate.vim'
Plug 'vim-scripts/vim-toplevel'
Plug 'xwsoul/vim-zephir'
Plug 'fatih/vim-go'
" ruby插件
Plug 'jgdavey/vim-blockle'
Plug 'vim-ruby/vim-ruby'
Plug 'tpope/vim-rvm'
" 禁用的插件
"
" 缓冲区文件浏览
"Plugin 'hesselbom/vim-hsftp'
"Plugin 'vim-scripts/bufexplorer.zip'
"Plugin 'vim-ruby/vim-ruby'
"Plugin 'svermeulen/vim-easyclip'
" tskeletion_vim 映射的c-j不太合理 , c-space与YCM有冲突
"Plugin 'tomtom/tskeleton_vim'
" 实时编辑插件
" 当文件在外部被修改,自动更新该文件 set autoread
" call vundle#end() " required
call plug#end()
" ----------------------------------------------------------------------------
" vundle配置结束
" ----------------------------------------------------------------------------
filetype on "启用文件类型侦测
filetype plugin on "针对不同的文件类型加载对应的插件
filetype plugin indent on " required
" -----------------------------------------------------------------------------
" map 一般,可视+选择,Operator-pending模式均有效,nmap " 一般模式有效,imap插入模式有效,
" vmap可视和选择状态有效,xmap仅可是模式有效,smap仅仅选择了文本以后才有效
" omap Operator-pending模式有效
" cmap 仅命令模式有效
" lmap 在插入模式,命令模式,搜索命令模式,接受参数输入的命令模式有效
" -----------------------------------------------------------------------------
" F1-F12, 其他功能键
" -----------------------------------------------------------------------------
" C-组合键
imap <c-F4> <ESC>:q!<cr>
imap <c-F4> <ESC>:q!<cr>
map <silent> <C-F12> <ESC>:TlistToggle<CR>
imap <silent> <C-F12> <ESC>:TlistToggle<CR>
" S-组合键
map <s-F1> <ESC>:NERDTreeToggle<CR>
imap <s-F1> <ESC>:NERDTreeToggle<CR>
map <s-F3> <ESC>:NumbersToggle<CR>
imap <s-F3> <ESC>:NumbersToggle<CR>
let g:winresizer_start_key='<s-F4>'
map <silent><s-F5> <ESC>:Startify<cr>
imap <silent><s-F5> <ESC>:Startify<cr>
map <silent><s-F8> <ESC> :FSHere<cr>
imap <silent><s-F8> <ESC> :FSHere<cr>
nmap <silent><s-F6> <ESC>:nohl<cr>
" 复制粘贴剪切,强制关闭<S-Help>
if g:ismac
map <S-Help> <ESC>"+p
imap <S-Help> <ESC>"+p
map <c-Help> "+y
map <s-F9> <ESC>:!open-terminal.sh %:p:h<cr><cr>
imap <s-F9> <ESC>:!open-terminal.sh %:p:h<cr><cr>
else
if !g:iswindows
map <s-F9> <ESC>:!gnome-terminal --working-directory=%:p:h<cr><cr>
imap <s-F9> <ESC>:!gnome-terminal --working-directory=%:p:h<cr><cr>
endif
map <S-Insert> <ESC>"+p
imap <S-Insert> <ESC>"+p
map <c-Insert> "+y
endif
map <S-Del> "+x
if g:iswindows
map <c-d-F> <ESC>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
imap <c-d-F> <ESC>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
endif
"
" 切换窗口,切换tabpag map <c-k> <ESC><c-w>k
map <c-k> <ESC><c-w>k
map <c-j> <ESC><c-w>j
map <c-h> <ESC><c-w>h
map <c-l> <ESC><c-w>l
map <d-h> <ESC>gT
map <d-l> <ESC>gt
imap <c-k> <ESC><c-w>k
imap <c-j> <ESC><c-w>j
imap <c-h> <ESC><c-w>h
imap <c-l> <ESC><c-w>l
imap <d-h> <ESC>gT
imap <d-l> <ESC>gt
" easymotion
nmap s <Plug>(easymotion-s)
"-----------------------------------------------------------------------
" ivalkeen/vim-ctrlp-tjump
"-----------------------------------------------------------------------
nmap <c-]> :CtrlPtjump<cr>
vmap <c-]> :CtrlPtjumpVisual<cr>
"-----------------------------------------------------------------------
" Mark
"-----------------------------------------------------------------------
nmap <unique> <silent> <leader>reg <Plug>MarkRegex
"-----------------------------------------------------------------------
" rst_table
"-----------------------------------------------------------------------
nmap <silent><leader>,c :python ReformatTable()<CR>
nmap <silent><leader>,f :python ReflowTable()<CR>
" choosewin插件绑定
nmap - <Plug>(choosewin)
nmap <silent><Leader>fu :CtrlPFunky<Cr>
" 自动把光标处的单词填到CtrlP输入区
nmap <silent><Leader>fU :execute 'CtrlPFunky ' . expand('<cword>')<Cr>
" filtering2 搜索文本后,可以列出所有搜索结果到
nmap ,f :call FilteringNew().addToParameter('alt', @/).run()<CR>
nmap ,g :call FilteringGetForSource().return()<CR>
" browserlink.vim
vmap <silent><Leader>Be :BLEvaluateSelection<CR>
nmap <silent><Leader>Be :BLEvaluateBuffer<CR>
nmap <silent><Leader>Br :BLReloadPage<CR>
nmap <silent><Leader>Bc :BLReloadCSS<CR>
" UltiSnips
let g:UltiSnipsExpandTrigger="<c-j>"
let g:UltiSnipsListSnippets="<c-l>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigge ="<c-k>"
" =============================================================================
"
" 插件配置
"
" =============================================================================
"
" ctags按钮命令
let g:ctags_command="ctags -R --fields=+aimSl --languages=php"
" =============================================================================
" toplevel插件
" =============================================================================
let toplevel = {}
let toplevel.vimshell = 0
let toplevel.rootlist = ['git','hg', 'bzr']
let toplevel.cdlist = [
\ ['.git', 'finddir' ],
\ ['.hg', 'finddir' ],
\ ['.bzr', 'finddir' ],
\ ['_darcs', 'finddir' ],
\ ['.svn', 'finddir' ],
\ ['index.php', 'findfile'],
\ ['_FOSSIL_', 'findfile'],
\ ['.fossil', 'findfile'],
\ ]
" -----------------------------------------------------------------------------
" < Align 插件配置 >
" -----------------------------------------------------------------------------
" 一个对齐的插件,用来——排版与对齐代码,功能强大,不过用到的机会不多
" -----------------------------------------------------------------------------
" < BufExplorer 插件配置 >
" -----------------------------------------------------------------------------
" 快速轻松的在缓存中切换(相当于另一种多个文件间的切换方式)
" <Leader>be 在当前窗口显示缓存列表并打开选定文件
" <Leader>bs 水平分割窗口显示缓存列表,并在缓存列表窗口中打开选定文件
" <Leader>bv 垂直分割窗口显示缓存列表,并在缓存列表窗口中打开选定文件
" -----------------------------------------------------------------------------
" < nerdcommenter 插件配置 >
" -----------------------------------------------------------------------------
" 我主要用于C/C++代码注释(其它的也行),这个插件我做了小点修改,也就是在注释符
" 与注释内容间加一个空格
" 以下为插件默认快捷键,其中的说明是以C/C++为例的
" <Leader>ci 以每行一个 /* */ 注释选中行(选中区域所在行),再输入则取消注释
" <Leader>cm 以一个 /* */ 注释选中行(选中区域所在行),再输入则称重复注释
" <Leader>cc 以每行一个 /* */ 注释选中行或区域,再输入则称重复注释
" <Leader>cu 取消选中区域(行)的注释,选中区域(行)内至少有一个 /* */
" <Leader>ca 在/*...*/与//这两种注释方式中切换(其它语言可能不一样了)
" <Leader>cA 行尾注释
let NERDSpaceDelims = 1 "在左注释符之后,右注释符之前留有空格
" -----------------------------------------------------------------------------
" < powerline 插件配置 > 状态栏插件,更好的状态栏效果
" -----------------------------------------------------------------------------
set laststatus=2 "启用状态栏信息
" -----------------------------------------------------------------------------
" -----------------------------------------------------------------------------
" < Syntastic 插件配置 >
" -----------------------------------------------------------------------------
" 用于保存文件是查检语法
" -----------------------------------------------------------------------------
" < TagList 插件配置 >
" -----------------------------------------------------------------------------
" 高效地浏览源码, 其功能就像vc中的workpace
" 那里面列出了当前文件中的所有宏,全局变量, 函数名等
" 常规模式下输入 tl 调用插件,如果有打开 Tagbar 窗口则先将其关闭
let Tlist_Exit_OnlyWindow=1
let Tlist_Show_One_File=1 "只显示当前文件的tags
let Tlist_Enable_Fold_Column=0 "使taglist插件不显示左边的折叠行
" let Tlist_File_Fold_Auto_Close=1 "自动折叠
" let Tlist_WinWidth=30 "设置窗口宽度
let Tlist_Use_Right_Window=1 "在右侧窗口中显示
" =============================================================================
" << 以下为常用工具配置 >>
" =============================================================================
" -----------------------------------------------------------------------------
" < ctags 工具配置 >
" -----------------------------------------------------------------------------
" 对浏览代码非常的方便,可以在函数,变量之间跳转等
" set tags=./tags; "向上级目录递归查找tags文件(好像只有在Windows下才有用)
" -----------------------------------------------------------------------------
" << 以下为常用自动命令配置 >>
" -----------------------------------------------------------------------------
" 自动切换目录为当前编辑文件所在目录
" au BufRead,BufNewFile,BufEnter * cd %:p:h
" -----------------------------------------------------------------------------
" << 其它 >>
" -----------------------------------------------------------------------------
" 注:上面配置中的"<Leader>"在本软件中设置为"\"键(引号里的反斜杠),如<Leader>t
" 指在常规模式下按"\"键加"t"键,这里不是同时按,而是先按"\"键后按"t"键,间隔在一
" 秒内,而<Leader>cs是先按"\"键再按"c"又再按"s"键
if g:isGUI
let g:indentLine_loaded=1
let g:indentLine_char = "┊"
let g:indentLine_first_char = "┊"
let g:indentLine_indentLevel = 8
let g:indentLine_color_gui = '#A4E57E'
endif
" -----------------------------------------------------------------------------
" <<michaeljsmith/vim-indent-object >>
" https://github.com/michaeljsmith/vim-indent-object/blob/master/doc/indent-object.txt
" -----------------------------------------------------------------------------
" -----------------------------------------------------------------------------
" < nerdtree 插件配置 >
" -----------------------------------------------------------------------------
" autocmd vimenter * NERDTree "打开NERDTree插件
" -----------------------------------------------------------------------------
" 907th/vim-auto-save
" -----------------------------------------------------------------------------
let g:auto_save = 1 " enable AutoSave on Vim startup
" 必须设置为1,否则repeat.vim失效
let g:auto_save_no_updatetime = 1
let g:auto_save_in_insert_mode = 0
let g:auto_save_events = ["InsertLeave"]
" -----------------------------------------------------------------------------
" triglav/vim-visual-increment
" -----------------------------------------------------------------------------
set nrformats=alpha,octal,hex
" -----------------------------------------------------------------------------
" vim-pandoc
" -----------------------------------------------------------------------------
let g:pandoc_use_hard_wraps = 1
let g:pandoc_auto_format = 1
let g:pandoc_no_folding = 1
let g:pandoc_no_empty_implicits = 1
"
" -----------------------------------------------------------------------------
" << numbers.vim >>
" -----------------------------------------------------------------------------
let g:enable_numbers = 0
" vim-gitgutter
let g:gitgutter_enabled = 1
let g:gitgutter_max_signs = 1000
let g:acp_behaviorSnipmateLength=1
" vim-css-color 更新时间不能设置太短,否则会干扰c-x,c-o的自动完成功能
let g:cssColorVimDoNotMessMyUpdatetime=3
" -----------------------------------------------------------------------------
" browserlink.vim
" -----------------------------------------------------------------------------
" 禁用 brolink的默认键位映射,因为与BufferExpoler冲突
let g:bl_no_mappings = 1
" -----------------------------------------------------------------------------
" DBGPavim
" -----------------------------------------------------------------------------
" -----------------------------------------------------------------------------
" sunday
" -----------------------------------------------------------------------------
let g:sunday_pairs = [
\ ['extends', 'implements'],
\ ['success', 'error'],
\ ['desc', 'asc'],
\ ['min', 'max'],
\ ['enable', 'disable'],
\ ['enabled', 'disabled'],
\ ['keydown', 'keyup' , 'keypress'],
\ ['click', 'dbclick' , 'mousedown' , 'mousemove', 'mouseover' , 'mouseout' , 'mouseup'],
\ ['blur', 'change', 'focus', 'select'],
\ ['onkeydown', 'onkeyup' , 'onkeypress'],
\ ['onclick', 'ondbclick' , 'onmousedown' , 'onmousemove', 'onmouseover' , 'onmouseout' , 'onmouseup'],
\ ['onblur', 'onchange', 'onfocus', 'onselect'],
\ ['id', 'class','name'],
\ ['width', 'height'],
\ ['solid', 'dotted' ],
\ ['none', 'block', 'inline', 'inline-block'],
\ ['top', 'bottom', 'left', 'right'],
\ ['margin', 'padding'],
\ ['absolute', 'relative'],
\ ['div', 'span'],
\ ['before', 'after'],
\ ['prepend', 'append'],
\ ['first', 'last'],
\ ['_POST', '_GET', '_REQUEST'],
\ ['ENT_COMPAT', 'ENT_QUOTES', 'ENT_NOQUOTES', 'ENT_IGNORE', 'ENT_SUBSTITUTE', 'ENT_DISALLOWED', 'ENT_HTML401', 'ENT_XML1', 'ENT_XHTML', 'ENT_HTML5'],
\ ['MODEL_INSERT', 'MODEL_UPDATE', 'MODEL_BOTH'],
\ ['regex', 'function', 'callback', 'confirm', 'equal', 'in', 'length', 'between', 'expire', 'ip_allow', 'ip_deny', 'unique'],
\ ['EXISTS_VALIDATE', 'MUST_VALIDATE', 'VALUE_VALIDATE'],
\ ['__ROOT__', '__APP__' ,'__GROUP__', '__URL__', '__ACTION__' ,'__PUBLIC__', '__SELF__'],
\ ['__DIR__', '__FILE__','__LINE__'],
\ ['__IMG__', '__JS__','__CSS__','__STATIC__','__ADDONS__'],
\ ['__NAMESPACE__','__TRAIT__', '__CLASS__', '__FUNCTION__','__METHOD__'],
\ ['array', 'boolean', 'float', 'integer', 'null', 'object' , 'resource', 'string'],
\ ['round', 'ceil', 'floor'],
\ ['push', 'pop', 'shift', 'unshift'],
\ ['sort', 'ksort', 'asort', 'rsort', 'krsort', 'arsort'],
\ ['bin2hex', 'hex2bin'],
\ ['htmlentities', 'html_entity_decode', 'htmlspecialchars' , 'htmlspecialchars_decode'],
\ ['pack', 'unpack'],
\ ['ord', 'chr'],
\ ['trim', 'ltrim', 'rtrim'],
\ ['require', 'require_once', 'include', 'include_once'],
\ ['strcmp', 'strcasecmp', 'strncmp', 'strncasecmp', 'strnatcmp', 'strnatcasecmp']
\ ]
" CtrlP
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/](\.git|\.hg|\.svn|\.idea|Runtime|Uploads|Session)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ }
let g:ctrlp_by_filename = 0
let g:ctrlp_follow_symlinks = 1
let g:ctrlp_lazy_update = 1
let g:ctrlp_mruf_relative = 1
let g:ctrlp_working_path_mode = 'arw'
" PyMatcher for CtrlP
if !has('python')
echo 'In order to use pymatcher plugin, you need +python compiled vim'
else
let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' }
endif
" Set delay to prevent extra search
let g:ctrlp_lazy_update = 350
" Do not clear filenames cache, to improve CtrlP startup
" You can manualy clear it by <F5>
let g:ctrlp_clear_cache_on_exit = 0
" Set no file limit, we are building a big project
let g:ctrlp_max_files = 0
" If ag is available use it as filename list generator instead of 'find'
if executable("ag")
set grepprg=ag\ --nogroup\ --nocolor
let g:ctrlp_user_command = 'ag %s -i --nocolor --nogroup --ignore ''.git'' --ignore ''.DS_Store'' --ignore ''node_modules'' --hidden -g ""'
endif
let g:ctrlp_extensions = ['funky']
" ack
let g:ackprg = 'ag --nogroup --nocolor --column'
" Valloric/YouCompleteMe
" C-space调出自动完成列表
let g:ycm_min_num_of_chars_for_completion = 2
" 在注释中启用完成功能
let g:ycm_complete_in_comments = 1
let g:ycm_collect_identifiers_from_tags_files = 1
" 在退出插入模式后自动关闭预览窗口
let g:ycm_autoclose_preview_window_after_insertion = 1
" 语法高亮
let php_sql_query = 1
let php_htmlInStrings = 1
let php_html_in_strings = 1
let php_parent_error_close = 1
let php_parent_error_open = 1
" airline
let g:airline_powerline_fonts = 1
let g:airline_exclude_preview = 1
"-----------------------------------------------------------------------
" groenewege/vim-less 编译为css需要lessc
"-----------------------------------------------------------------------
" nnoremap ,m :w <BAR> !lessc % > %:t:r.css<CR><space>
"-----------------------------------------------------------------------
" plasticboy/vim-markdown
"-----------------------------------------------------------------------
let g:vim_markdown_folding_disabled=1
" Fswitch
let g:fsnonewfiles=1
" ctrlspace
let g:ctrlspace_use_tabline=1
let g:ctrlspace_save_workspace_on_exit=0
let g:ctrlspace_load_last_workspace_on_start=0
let g:ctrlspace_project_root_markers=[".git", ".hg", ".svn", ".bzr", "_darcs", "CVS",".idea",".root"]
"(see `:help wildignore`)
let g:ctrlspace_ignored_files ='\v(tmp|temp)[\/]'
" startify插件
"
let g:ctrlp_reuse_window = 'startify'
" Locate
let g:locate_max_height = 20
" syntastic 避免与Locate 列表冲突
let g:syntastic_auto_loc_list = 0
" ack
let g:ackprg = "ack-grep"
let g:ack_autofold_results = 1
let g:ackhighlight = 1
au! BufEnter *.less let b:fswitchdst = 'css'
\ | let b:fswitchlocs = './,../css/,../Css/'
au! BufEnter *.sass let b:fswitchdst = 'css'
\ | let b:fswitchlocs = './,../css/,../Css/'
au! BufEnter *.scss let b:fswitchdst = 'css'
\ | let b:fswitchlocs = './,../css/,../Css/'
au! BufEnter *.css let b:fswitchdst = 'less,scss,sass'
\ | let b:fswitchlocs = './,../less/,../scss/,../sass/'
" jQuery插件语法高亮
au BufRead,BufNewFile jquery.*.js set ft=javascript syntax=jquery
" startify
autocmd VimEnter *
\ if !argc()
\ | Startify
\ | cd $HOME
\ | wincmd w
\ | endif
autocmd FileType startify setlocal buftype=
augroup toplevel
" 打开文件时自动静默执行Cd命令
autocmd BufEnter * silent Cd
augroup END
" 自动完成配置 phpcomplete.vim
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType python setlocal et sta sw=4 sts=4
" 外部命令
autocmd FileType markdown map <buffer> <s-F2> <ESC>:w <BAR> !~/bin/markdown.php -v -f %:p<cr>
autocmd FileType markdown imap <buffer> <s-F2> <ESC>:w <BAR> !~/bin/markdown.php -v -f %:p<cr>
autocmd FileType php map <buffer> <s-F2> <ESC>:w <BAR> !php -f %:p \| tee ~/.temp_php_output<cr> :pedit! +set\ readonly ~/.temp_php_output<cr>
autocmd FileType php imap <buffer> <s-F2> <ESC>:w <BAR> !php -f %:p \| tee ~/.temp_php_output<cr> :pedit! +set\ readonly ~/.temp_php_output<cr>
autocmd FileType ruby map <buffer> <s-F2> <ESC>:w <BAR> !ruby %:p 2>&1 \| tee ~/.temp_ruby_output<cr> :pedit! +set\ readonly ~/.temp_ruby_output<cr>
autocmd FileType ruby imap <buffer> <s-F2> <ESC>:w <BAR> !ruby %:p 2>&1 \| tee ~/.temp_ruby_output<cr> :pedit! +set\ readonly ~/.temp_ruby_output<cr>
autocmd FileType less map <buffer> <s-F2> <ESC>:w <BAR> !lessc %:p > %:p:r.css<cr>
autocmd FileType less imap <buffer> <s-F2> <ESC>:w <BAR> !lessc %:p > %:p:r.css<cr>
autocmd FileType scss,sass map <buffer> <s-F2> <ESC>:w <BAR> !sass %:p > %:p:r.css<cr>
autocmd FileType scss,sass imap <buffer> <s-F2> <ESC>:w <BAR> !sass %:p > %:p:r.css<cr>
" easymotion
autocmd FileType ruby,eruby map <silent> <buffer> <C-]> <ESC>:call ctrlp#tjump#exec(RubyCursorIdentifier())<CR>
autocmd FileType ruby,eruby imap <silent> <buffer> <C-]> <ESC>:call ctrlp#tjump#exec(RubyCursorIdentifier())<CR>
" =======================
" markdown格式化
" =======================
" table 格式化,单元格之间用四个空格或tab隔开
autocmd FileType markdown vmap <leader>ft :s/\(----\)\@<=\s\+\(----\)\@=\<bar>\(\s*\t\s*\)\+\<bar>\s\{4,}\<bar>^\(\s*<bar>\)\@!\<bar>\(<bar>\s*\)\@<!$/<bar>/g<cr>:nohl<cr>:TableFormat<cr>
" 用`包围含有_ 的word
autocmd FileType markdown vmap <leader>fw :s/[a-zA-Z$->:;'"()]\+\(_[a-zA-Z$->:;'"()]\+\)\+/`\0`/g<cr>:nohl<cr>
" 无序列表
autocmd FileType markdown vmap <leader>fu :s/^\(\s*\)\(\S\+\)/\1* \2/g<cr>:nohl<cr>
" 有序列表
autocmd FileType markdown vmap <leader>fo :s/^\(\s*\)\(\S\+\)/\11. \2/g<cr>:nohl<cr>
" blockquote
autocmd FileType markdown vmap <leader>fb :s/^.*$/> \0/g<cr>:nohl<cr>
" 包围块代码
autocmd FileType markdown vmap <leader>fc :s/^\(\%V\_.*\)\%V$/```\r\0\r```/<cr>:nohl<cr>
" <p class=api>
autocmd FileType markdown vmap <leader>api :s/^\s*\S\+.*$/<p class="api">\0<\/p>/g<cr>:nohl<cr>
" 移除空行 Delete Empty Line
vmap <leader>del :g/^\s*$/delete<cr>:nohl<cr>
" 添加空行
vmap <leader>ael :s/^\s*\S\+.*$/\0\r/g<cr>:nohl<cr>
function! FormatChar()
let a:map ={
\ ",":'\%u3001',
\ "'":'\%uFF07\|\%u2018\|\%u2019',
\ '"':'\%u201D\|\%uFF02\|\%u3003\|\%u201C',
\ '? ':'\%uFF1F',
\ '! ':'\%uFF01',
\ ': ':'\%uFF1A',
\ '; ':'\%uFF1B',
\ ', ':'\%uFF0C',
\ '. ':'\%u3002\|\%uFF0E',
\ '(':'\%uFF08',
\ ')':'\%uFF09',
\ '<':'\%u3008\|\%uFF1C',
\ '>':'\%u3009\|\%uFF1D',
\ '|':'\%u3021\|\%uFF5C',
\ '#':'\%uFF03',
\ '$':'\%uFF04',
\ '&':'\%uFF06',
\ '+':'\%uFF0B',
\ '*':'\%uFF0A',
\ '%':'\%uFF05',
\ '=':'\%uFF1D',
\ '/':'\%uFF0F',
\ '@':'\%uFF20',
\ '^':'\%uFF3E',
\ '`':'\%uFF40',
\ '{':'\%uFF5B',
\ '}':'\%uFF5D',
\ '~':'\%uFF5E',
\ '-':'\%uFF0D\|\%u2010\|\%u2011\|\%u2012\|\%u2013\|\%u2014\|\%u2015',
\ '[':'\%u3010\|\%uFF3B',
\ ']':'\%u3011\|\%uFF3D'
\}
" 光标定位到选择的内容的头部
normal `<
normal gv
normal d
let a:lines = @"
let a:key=''
let a:value=''
for [a:key, a:value] in items(a:map)
let a:lines = substitute(a:lines,a:value,a:key,'g')
endfor
let @1=a:lines
normal "1P
endfunction
" 中文标点转英文标点
autocmd FileType markdown vmap <leader>c, <esc>:call FormatChar()<cr>
" 放在最后
au BufNewFile,BufRead,BufEnter *.scss setf scss
au BufNewFile,BufRead,BufEnter *.sass setf sass
VimL
1
https://gitee.com/zhuyajie/vimrc.git
git@gitee.com:zhuyajie/vimrc.git
zhuyajie
vimrc
vimrc
master

搜索帮助