vim-plug,异步插件管理,总之就是下起来快。
ale,异步语法检查
LeaderF,快速查找文件
completor.vim vim8的快速补全java
markdown预览python
使打开vimrc折叠,默认折叠是{{{
c++
" Startup {{{ filetype indent plugin on augroup vimrcEx au! autocmd FileType text setlocal textwidth=78 augroup END " vim 文件折叠方式为 marker augroup ft_vim au! autocmd FileType vim setlocal foldmethod=marker " 打开文件老是定位到上次编辑的位置 autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END " }}}
" General {{{ set nocompatible set nobackup set noswapfile set history=1024 "自动设置当前目录为正在编辑的目录 cd D:\Code\VimCode set autochdir autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ / set whichwrap=b,s,<,>,[,] set nobomb set backspace=indent,eol,start whichwrap+=<,>,[,] " Vim 的默认寄存器和系统剪贴板共享 set clipboard+=unnamed " 设置 alt 键不映射到菜单栏 set winaltkeys=no "关闭提示音 set noeb set vb t_vb= " }}}
" Lang & Encoding {{{ set fenc= set fileencodings=utf-8,gb18030,utf-16,big5 set encoding=utf-8 set langmenu=zh_CN let $LANG = 'en_US.UTF-8' "解决consle输出乱码 language messages zh_CN.utf-8 "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim " }}}
" GUI {{{ " 设置 gvim 显示字体 "set guifont=DejaVu\ Sans\ Mono\ for\ Powerline:h12 set guifont=Fira_Code:h12 set gfw=幼圆:h12:cGB2312 set cursorline set hlsearch " 开启实时搜索功能 set incsearch " 搜索时大小写不敏感 set ignorecase set number "Show related row numbers set relativenumber "在光标接近底端或顶端时,自动下滚或上滚 set scrolloff=10 " 窗口大小 set lines=30 columns=80 " 分割出来的窗口位于当前窗口下边/右边 set splitbelow set splitright "不显示工具/菜单栏 set guioptions-=T set guioptions-=m set guioptions-=L set guioptions-=r set guioptions-=b " }}}
" Format {{{ set autoindent set smartindent set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab "自动折叠 set foldmethod=marker syntax on " }}}
" Keyboard setting {{{ "set my leader "let mapleader=";" let mapleader="\<Space>" "打开vimrc快捷键 nnoremap <leader>ev :split $MYVIMRC<cr> "运行当前vimrc脚本 nnoremap<leader>sv :source $MYVIMRC<cr> " 打开当前目录 windows nmap <silent> <leader>ex :!start explorer %:p:h<CR> " 打开当前目录CMD nmap <silent> <leader>cmd :!start cmd /k cd %:p:h<cr> " 复制当前文件/路径到剪贴板 nmap ,fn :let @*=substitute(expand("%"), "/", "\\", "g")<CR> nmap ,fp :let @*=substitute(expand("%:p"), "/", "\\", "g")<CR> " 一键运行 "编译运行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!g++ % -o %<" exec "! %<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "! %<" elseif &filetype == 'java' exec "!javac %" exec "!java %<" elseif &filetype == 'py' exec "!python" elseif &filetype == 'sh' :!% endif endfunc " }}}
注意,如下插件都要在call plug#begin('D:\Editor\Vim\vimfiles\plugged')
中写入,路径能够改成你要放的插件文件夹路径git
" +beautiful {{{ "美化状态栏 Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " airline-setting {{{ "增强版状态栏 let g:airline_theme='molokai' "使用powerline打过补丁的字体 let g:airline_powerline_fonts = 1 "关闭状态显示空白符号计数,这个对我用处不大" let g:airline#extensions#whitespace#enabled = 0 let g:airline#extensions#whitespace#symbol = '!' "开启tabline let g:airline#extensions#tabline#enabled = 1 "tabline中buffer显示编号 let g:airline#extensions#tabline#buffer_nr_show = 1 " }}} "打开界面 Plug 'mhinz/vim-startify' "theme color Plug 'flazz/vim-colorschemes' Plug 'tomasr/molokai' Plug 'morhetz/gruvbox' Plug 'nanotech/jellybeans.vim' " theme-setting {{{ " 配色方案 set background=dark "colorscheme jellybeans "colorscheme molokai "colorscheme desert colorscheme gruvbox " }}} "中文帮助文档 Plug 'yianwillis/vimcdoc' "}}}
" +programming {{{ "文件树 Plug 'scrooloose/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' " 文件树设置 {{{ " 关闭NERDTree快捷键 map <leader>t :NERDTreeToggle<CR> ""当NERDTree为剩下的惟一窗口时自动关闭 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif ""修改树的显示图标 let g:NERDTreeDirArrowExpandable = '►' let g:NERDTreeDirArrowCollapsible = '▼' let NERDTreeAutoCenter=1 " 显示行号 let NERDTreeShowLineNumbers=1 " 是否显示隐藏文件 let NERDTreeShowHidden=1 " 设置宽度 let NERDTreeWinSize=25 " 在终端启动vim时,共享NERDTree let g:nerdtree_tabs_open_on_console_startup=1 " 忽略一下文件的显示 let NERDTreeIgnore=['\.pyc','\~$','\.swp'] let g:NERDTreeIndicatorMapCustom = { \ "Modified" : "✹", \ "Staged" : "✚", \ "Untracked" : "✭", \ "Renamed" : "➜", \ "Unmerged" : "═", \ "Deleted" : "✖", \ "Dirty" : "✗", \ "Clean" : "✔︎", \ 'Ignored' : '☒', \ "Unknown" : "?" \ } " }}} "文件搜索 Plug 'Yggdroot/LeaderF' "异步语法检查 Plug 'w0rp/ale' " ale-setting {{{ let g:ale_set_highlights = 0 "自定义error和warning图标 let g:ale_sign_error = '✗' let g:ale_sign_warning = '⚡' "在vim自带的状态栏中整合ale let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK'] "显示Linter名称,出错或警告等相关信息 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' "打开文件时不进行检查 let g:ale_lint_on_enter = 0 "普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) "<Leader>s触发/关闭语法检查 nmap <Leader>s :ALEToggle<CR> "<Leader>d查看错误或警告的详细信息 nmap <Leader>d :ALEDetail<CR> "使用clang对c和c++进行语法检查,对python使用pylint进行语法检查 let g:ale_linters = { \ 'c++': ['clang'], \ 'c': ['clang'], \ 'python': ['pylint'], \} " }}} "括号补全 Plug 'jiangmiao/auto-pairs' "补全 Plug 'maralla/completor.vim' Plug 'maralla/completor-neosnippet' " 补全设置 {{{ "使用tab补全 inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" inoremap <expr> <cr> pumvisible() ? "\<C-y>\<cr>" : "\<cr>" " }}} "注释 Plug 'scrooloose/nerdcommenter' " 注释说明 {{{ "<leader>cc 加注释 "<leader>cu 解开注释 "<leader>c<space> 加上/解开注释, 智能判断 "<leader>cy 先复制, 再注解(p能够进行黏贴) " 注释的时候自动加个空格, 强迫症必配 "let g:NERDSpaceDelims=1 " }}} "}}}
" +lag {{{ " markdown Plug 'godlygeek/tabular' Plug 'plasticboy/vim-markdown' Plug 'kannokanno/previm' Plug 'tyru/open-browser.vim' " markdown-setting {{{ "使用:PrevimOpen就能够预览 " }}}
" PluList {{{ call plug#begin('D:\Editor\Vim\vimfiles\plugged') filetype plugin indent on " +beautiful {{{ "美化状态栏 Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " airline-setting {{{ "增强版状态栏 let g:airline_theme='molokai' "使用powerline打过补丁的字体 let g:airline_powerline_fonts = 1 "关闭状态显示空白符号计数,这个对我用处不大" let g:airline#extensions#whitespace#enabled = 0 let g:airline#extensions#whitespace#symbol = '!' "开启tabline let g:airline#extensions#tabline#enabled = 1 "tabline中buffer显示编号 let g:airline#extensions#tabline#buffer_nr_show = 1 " }}} "打开界面 Plug 'mhinz/vim-startify' "theme color Plug 'flazz/vim-colorschemes' Plug 'tomasr/molokai' Plug 'morhetz/gruvbox' Plug 'nanotech/jellybeans.vim' " theme-setting {{{ " 配色方案 set background=dark "colorscheme jellybeans "colorscheme molokai "colorscheme desert colorscheme gruvbox " }}} "中文帮助文档 Plug 'yianwillis/vimcdoc' "}}} " +programming {{{ "文件树 Plug 'scrooloose/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' " 文件树设置 {{{ " 关闭NERDTree快捷键 map <leader>t :NERDTreeToggle<CR> ""当NERDTree为剩下的惟一窗口时自动关闭 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif ""修改树的显示图标 let g:NERDTreeDirArrowExpandable = '►' let g:NERDTreeDirArrowCollapsible = '▼' let NERDTreeAutoCenter=1 " 显示行号 let NERDTreeShowLineNumbers=1 " 是否显示隐藏文件 let NERDTreeShowHidden=1 " 设置宽度 let NERDTreeWinSize=25 " 在终端启动vim时,共享NERDTree let g:nerdtree_tabs_open_on_console_startup=1 " 忽略一下文件的显示 let NERDTreeIgnore=['\.pyc','\~$','\.swp'] let g:NERDTreeIndicatorMapCustom = { \ "Modified" : "✹", \ "Staged" : "✚", \ "Untracked" : "✭", \ "Renamed" : "➜", \ "Unmerged" : "═", \ "Deleted" : "✖", \ "Dirty" : "✗", \ "Clean" : "✔︎", \ 'Ignored' : '☒', \ "Unknown" : "?" \ } " }}} "文件搜索 Plug 'Yggdroot/LeaderF' "异步语法检查 Plug 'w0rp/ale' " ale-setting {{{ let g:ale_set_highlights = 0 "自定义error和warning图标 let g:ale_sign_error = '✗' let g:ale_sign_warning = '⚡' "在vim自带的状态栏中整合ale let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK'] "显示Linter名称,出错或警告等相关信息 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' "打开文件时不进行检查 let g:ale_lint_on_enter = 0 "普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) "<Leader>s触发/关闭语法检查 nmap <Leader>s :ALEToggle<CR> "<Leader>d查看错误或警告的详细信息 nmap <Leader>d :ALEDetail<CR> "使用clang对c和c++进行语法检查,对python使用pylint进行语法检查 let g:ale_linters = { \ 'c++': ['clang'], \ 'c': ['clang'], \ 'python': ['pylint'], \} " }}} "括号补全 Plug 'jiangmiao/auto-pairs' "补全 Plug 'maralla/completor.vim' Plug 'maralla/completor-neosnippet' " 补全设置 {{{ "使用tab补全 inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" inoremap <expr> <cr> pumvisible() ? "\<C-y>\<cr>" : "\<cr>" " }}} "注释 Plug 'scrooloose/nerdcommenter' " 注释说明 {{{ "<leader>cc 加注释 "<leader>cu 解开注释 "<leader>c<space> 加上/解开注释, 智能判断 "<leader>cy 先复制, 再注解(p能够进行黏贴) " 注释的时候自动加个空格, 强迫症必配 "let g:NERDSpaceDelims=1 " }}} "}}} " +lang {{{ " markdown Plug 'godlygeek/tabular' Plug 'plasticboy/vim-markdown' Plug 'kannokanno/previm' Plug 'tyru/open-browser.vim' " markdown-setting {{{ "使用:PrevimOpen就能够预览 " }}} "}}} call plug#end() " }}}
可能有更新,能够看我github上的vimrcgithub
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " common setting " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Startup {{{ filetype indent plugin on augroup vimrcEx au! autocmd FileType text setlocal textwidth=78 augroup END " vim 文件折叠方式为 marker augroup ft_vim au! autocmd FileType vim setlocal foldmethod=marker " 打开文件老是定位到上次编辑的位置 autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END " }}} " General {{{ set nocompatible set nobackup set noswapfile set history=1024 "自动设置当前目录为正在编辑的目录 cd D:\Code\VimCode set autochdir autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ / set whichwrap=b,s,<,>,[,] set nobomb set backspace=indent,eol,start whichwrap+=<,>,[,] " Vim 的默认寄存器和系统剪贴板共享 set clipboard+=unnamed " 设置 alt 键不映射到菜单栏 set winaltkeys=no "关闭提示音 set noeb set vb t_vb= " }}} " Lang & Encoding {{{ set fenc= set fileencodings=utf-8,gb18030,utf-16,big5 set encoding=utf-8 set langmenu=zh_CN let $LANG = 'en_US.UTF-8' "解决consle输出乱码 language messages zh_CN.utf-8 "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim " }}} " GUI {{{ " 设置 gvim 显示字体 "set guifont=DejaVu\ Sans\ Mono\ for\ Powerline:h12 set guifont=Fira_Code:h12 set gfw=幼圆:h12:cGB2312 set cursorline set hlsearch " 开启实时搜索功能 set incsearch " 搜索时大小写不敏感 set ignorecase set number "Show related row numbers set relativenumber "在光标接近底端或顶端时,自动下滚或上滚 set scrolloff=10 " 窗口大小 set lines=30 columns=80 " 分割出来的窗口位于当前窗口下边/右边 set splitbelow set splitright "不显示工具/菜单栏 set guioptions-=T set guioptions-=m set guioptions-=L set guioptions-=r set guioptions-=b " }}} " Format {{{ set autoindent set smartindent set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab "自动折叠 set foldmethod=marker syntax on " }}} " Keyboard setting {{{ "set my leader "let mapleader=";" let mapleader="\<Space>" "打开vimrc快捷键 nnoremap <leader>ev :split $MYVIMRC<cr> "运行当前vimrc脚本 nnoremap<leader>sv :source $MYVIMRC<cr> " 打开当前目录 windows nmap <silent> <leader>ex :!start explorer %:p:h<CR> " 打开当前目录CMD nmap <silent> <leader>cmd :!start cmd /k cd %:p:h<cr> " 复制当前文件/路径到剪贴板 nmap ,fn :let @*=substitute(expand("%"), "/", "\\", "g")<CR> nmap ,fp :let @*=substitute(expand("%:p"), "/", "\\", "g")<CR> " 一键运行 "编译运行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!g++ % -o %<" exec "! %<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "! %<" elseif &filetype == 'java' exec "!javac %" exec "!java %<" elseif &filetype == 'py' exec "!python" elseif &filetype == 'sh' :!% endif endfunc " }}} """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Plug " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Plug List {{{ call plug#begin('D:\Editor\Vim\vimfiles\plugged') filetype plugin indent on " +beautiful {{{ "美化状态栏 Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " airline-setting {{{ "增强版状态栏 let g:airline_theme='molokai' "使用powerline打过补丁的字体 let g:airline_powerline_fonts = 1 "关闭状态显示空白符号计数,这个对我用处不大" let g:airline#extensions#whitespace#enabled = 0 let g:airline#extensions#whitespace#symbol = '!' "开启tabline let g:airline#extensions#tabline#enabled = 1 "tabline中buffer显示编号 let g:airline#extensions#tabline#buffer_nr_show = 1 " }}} "打开界面 Plug 'mhinz/vim-startify' "theme color Plug 'flazz/vim-colorschemes' Plug 'tomasr/molokai' Plug 'morhetz/gruvbox' Plug 'nanotech/jellybeans.vim' " theme-setting {{{ " 配色方案 set background=dark "colorscheme jellybeans "colorscheme molokai "colorscheme desert colorscheme gruvbox " }}} "中文帮助文档 Plug 'yianwillis/vimcdoc' "}}} " +programming {{{ "文件树 Plug 'scrooloose/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' " 文件树设置 {{{ " 关闭NERDTree快捷键 map <leader>t :NERDTreeToggle<CR> ""当NERDTree为剩下的惟一窗口时自动关闭 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif ""修改树的显示图标 let g:NERDTreeDirArrowExpandable = '►' let g:NERDTreeDirArrowCollapsible = '▼' let NERDTreeAutoCenter=1 " 显示行号 let NERDTreeShowLineNumbers=1 " 是否显示隐藏文件 let NERDTreeShowHidden=1 " 设置宽度 let NERDTreeWinSize=25 " 在终端启动vim时,共享NERDTree let g:nerdtree_tabs_open_on_console_startup=1 " 忽略一下文件的显示 let NERDTreeIgnore=['\.pyc','\~$','\.swp'] let g:NERDTreeIndicatorMapCustom = { \ "Modified" : "✹", \ "Staged" : "✚", \ "Untracked" : "✭", \ "Renamed" : "➜", \ "Unmerged" : "═", \ "Deleted" : "✖", \ "Dirty" : "✗", \ "Clean" : "✔︎", \ 'Ignored' : '☒', \ "Unknown" : "?" \ } " }}} "文件搜索 Plug 'Yggdroot/LeaderF' "异步语法检查 Plug 'w0rp/ale' " ale-setting {{{ let g:ale_set_highlights = 0 "自定义error和warning图标 let g:ale_sign_error = '✗' let g:ale_sign_warning = '⚡' "在vim自带的状态栏中整合ale let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK'] "显示Linter名称,出错或警告等相关信息 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' "打开文件时不进行检查 let g:ale_lint_on_enter = 0 "普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) "<Leader>s触发/关闭语法检查 nmap <Leader>s :ALEToggle<CR> "<Leader>d查看错误或警告的详细信息 nmap <Leader>d :ALEDetail<CR> "使用clang对c和c++进行语法检查,对python使用pylint进行语法检查 let g:ale_linters = { \ 'c++': ['clang'], \ 'c': ['clang'], \ 'python': ['pylint'], \} " }}} "括号补全 Plug 'jiangmiao/auto-pairs' "补全 Plug 'maralla/completor.vim' Plug 'maralla/completor-neosnippet' " 补全设置 {{{ "使用tab补全 inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" inoremap <expr> <cr> pumvisible() ? "\<C-y>\<cr>" : "\<cr>" " }}} "注释 Plug 'scrooloose/nerdcommenter' " 注释说明 {{{ "<leader>cc 加注释 "<leader>cu 解开注释 "<leader>c<space> 加上/解开注释, 智能判断 "<leader>cy 先复制, 再注解(p能够进行黏贴) " 注释的时候自动加个空格, 强迫症必配 "let g:NERDSpaceDelims=1 " }}} "}}} " +lang {{{ " markdown Plug 'godlygeek/tabular' Plug 'plasticboy/vim-markdown' Plug 'kannokanno/previm' Plug 'tyru/open-browser.vim' " markdown-setting {{{ "使用:PrevimOpen就能够预览 " }}} "}}} call plug#end() " }}}