# vimrc 以下是我的个人vimrc文件,供参考 ``` **[terminal] " Info { " Author your name " File ~/.vimrc " Plugin Manager Vundle " } " Configure Vundle { " be iMproved, required set nocompatible " turn off the filetype, required filetype off " set the runtime path to include vundle and initialize set rtp+=~/.vim/bundle/vundle " default vundle#begin "call vundle#begin() " define a path where vundle should install plugins call vundle#begin('~/.vim/bundle/plugins') " let vundle manage vundle, required Plugin 'vundlevim/vundle.vim' " Configure Plugins { Plugin 'scrooloose/nerdtree' Plugin 'scrooloose/nerdcommenter' Plugin 'jiangmiao/auto-pairs' "Plugin 'Lokaltog/vim-powerline' Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' Plugin 'kien/ctrlp.vim' "Plugin 'Valloric/YouCompleteMe' "Plugin 'tpope/vim-surround' Plugin 'mattn/emmet-vim' Plugin 'Shougo/neocomplcache.vim' Plugin 'pangloss/vim-javascript' Plugin 'flazz/vim-colorschemes' Plugin 'yianwillis/vimcdoc' Plugin 'python-mode/python-mode' Plugin 'vim-syntastic/syntastic' " } call vundle#end() " required filetype plugin indent on " required " } " Configure Vim { " General { set history=1000 set number "set relativenumber set numberwidth=1 colorscheme wombat set nocp filetype indent on filetype plugin on filetype plugin indent on set autoread set shortmess=ati set nobackup set nowb set noswapfile set hlsearch set ignorecase set incsearch "set foldenable "set foldmethod=syntax set tabstop=4 set shiftwidth=4 set autoindent set cindent set smartindent set smarttab set wrap au FileType html,python,vim,javascript,java,php,qml setl shiftwidth=4 au FileType html,python,vim,javascript,java,php,qml setl tabstop=4 au FileType txt, setl shiftwidth=4 au FileType txt, setl tabstop=4 set ruler set showcmd set showmatch syntax enable syntax on set t_Co=256 set encoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 cmap W w !sudo tee % >/dev/null nmap :source $MYVIMRC " } " NERDTree { " open NERDTree automatically when vim starts up "autocmd vimenter * NERDTree " NERDTree Window Position "let NERDTreeWinPos=0 " open NERDTree automatically when vim starts up if no files were specified autocmd stdinreadpre * let s:std_in=1 autocmd vimenter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif " open NERDTree automatically when vim starts up on opening directory autocmd vimenter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif " close vim when the only window left open is a NERDTree autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " use F3 to open and close NERDTree map :NERDTreeToggle " default arrow symbols let g:NERDTreeDirArrowExpandable = '▸' let g:NERDTreeDirArrowCollapsible = '▾' "let g:NERDTreeDirArrowExpandable = '+' "let g:NERDTreeDirArrowCollapsible = '~' " NERDTree file highlighting function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg) exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg exec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#' endfunction call NERDTreeHighlightFile('css', 'blue', 'none', 'blue', '#151515') call NERDTreeHighlightFile('php', 'red', 'none', 'red', '#151515') call NERDTreeHighlightFile('html', 'blue', 'none', 'blue', '#151515') call NERDTreeHighlightFile('js', 'blue', 'none', 'blue', '#151515') call NERDTreeHighlightFile('json', 'magenta', 'none', 'magenta', '#151515') call NERDTreeHighlightFile('cpp', 'green', 'none', 'green', '#151515') " } " NERDTCommnet { let mapleader="," let g:NERDSpaceDelims="1" " } " Vim-Airline { let g:airline#extensions#tabline#enabled = 1 let g:airline_powerline_fonts = 1 let g:airline_theme="wombat" if !exists('g:airline_symbols') let g:airline_symbols = {} endif let g:airline_left_sep = '»' let g:airline_left_sep = '▶' let g:airline_right_sep = '«' let g:airline_right_sep = '◀' let g:airline_symbols.crypt = '🔒' let g:airline_symbols.linenr = '☰' let g:airline_symbols.linenr = '␊' let g:airline_symbols.linenr = '␤' let g:airline_symbols.linenr = '¶' let g:airline_symbols.maxlinenr = '' let g:airline_symbols.maxlinenr = '㏑' let g:airline_symbols.branch = '⎇' let g:airline_symbols.paste = 'ρ' let g:airline_symbols.paste = 'Þ' let g:airline_symbols.paste = '∥' let g:airline_symbols.spell = 'Ꞩ' let g:airline_symbols.notexists = '∄' let g:airline_symbols.whitespace = 'Ξ' "let g:airline_section_b = '%{strftime("%c")}' "let g:airline_section_y = 'BN: %{bufnr("%")}' " } " Vim-Neocomplcache { let g:neocomplcache_enable_at_startup = 1 " } " Vim-Javascript { let g:javascript_plugin_jsdoc = 1 let g:javascript_plugin_ngdoc = 1 let g:javascript_plugin_flow = 1 " } " Vimcdoc { set helplang=en " } " Python-Mode { let g:pymode = 1 let g:pymode_python = 'python3' " } " Syntastic { set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 " } " } ```