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() " }}}