如題,本篇給你們介紹一下我我的的vim配置,話很少說,直接上圖。
html
這是個人.vimrc.
java
你能夠把以下文件複製到你的文件中,你也會擁有像我同樣炫酷的界面。python
filetype plugin on set nocompatible " be iMproved, required call plug#begin('~/.vim/plugins_by_vimplug') Plug 'kien/ctrlp.vim' " Plug 'scrooloose/syntastic' Plug 'majutsushi/tagbar' Plug 'Valloric/YouCompleteMe' Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'https://github.com/easymotion/vim-easymotion.git' Plug 'https://github.com/jistr/vim-nerdtree-tabs.git' Plug 'https://github.com/Shougo/neocomplcache.vim.git' Plug 'https://github.com/sjl/badwolf.git' Plug 'https://github.com/artur-shaik/vim-javacomplete2.git' Plug 'https://github.com/all3g/pretty-vim' Plug 'skywind3000/asyncrun.vim' Plug 'mhartington/oceanic-next' Plug 'neomake/neomake' Plug 'ericpruitt/tmux.vim', {'rtp': 'vim/'} Plug 'https://github.com/altercation/vim-colors-solarized.git' Plug 'https://github.com/tomasr/molokai.git' Plug 'https://github.com/vim-scripts/DoxygenToolkit.vim.git' Plug 'https://github.com/liuchengxu/space-vim-dark.git' call plug#end() filetype off " required set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'xolox/vim-misc' Plugin 'xolox/vim-easytags' Plugin 'tpope/vim-fugitive' Plugin 'git://git.wincent.com/command-t.git' Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " Plugin 'davidhalter/jedi-vim' call vundle#end() " required filetype plugin indent on " required set shell=/bin/bash set backspace=indent,eol,start set autoindent set cindent set smartindent set number set relativenumber set tabstop=4 set shiftwidth=4 set expandtab hi Comment cterm=italic syntax enable set t_Co=256 if (has("termguicolors")) set termguicolors endif colorscheme OceanicNext map <Leader>n <plug>NERDTreeTabsToggle<CR> map <Leader>f <Plug>(easymotion-bd-f) nmap <Leader>f <Plug>(easymotion-overwin-f) map <Leader>L <Plug>(easymotion-bd-jk) nmap <Leader>L <Plug>(easymotion-overwin-line) nmap s <Plug>(easymotion-overwin-f2) map <Leader>w <Plug>(easymotion-bd-w) nmap <Leader>w <Plug>(easymotion-overwin-w) nnoremap <F5> :call <SID>compile_and_run()<CR> nnoremap <F2> :10,30call <SID>Count_Words()<CR> nnoremap <c-j> <c-w>j nnoremap <C-K> <C-W>k nnoremap <c-h> <c-w>h nnoremap <c-l> <c-w>l let g:molokai_original = 1 let g:nerdtree_tabs_open_on_console_startup=1 let g:ycm_min_num_of_chars_for_completion=1 let g:ycm_python_binary_path='/usr/bin/python3' augroup project autocmd! autocmd BufRead,BufNewFile *.h,*.c set filetype=c.doxygen augroup END augroup SPACEVIM_ASYNCRUN autocmd! autocmd User AsyncRunStart call asyncrun#quickfix_toggle(15, 1) augroup END nmap <leader>jI <Plug>(JavaComplete-Imports-AddMissing) nmap <leader>jR <Plug>(JavaComplete-Imports-RemoveUnused) nmap <leader>ji <Plug>(JavaComplete-Imports-AddSmart) nmap <leader>jii <Plug>(JavaComplete-Imports-Add) imap <C-j>I <Plug>(JavaComplete-Imports-AddMissing) imap <C-j>R <Plug>(JavaComplete-Imports-RemoveUnused) imap <C-j>i <Plug>(JavaComplete-Imports-AddSmart) imap <C-j>ii <Plug>(JavaComplete-Imports-Add) nmap <leader>jM <Plug>(JavaComplete-Generate-AbstractMethods) imap <C-j>jM <Plug>(JavaComplete-Generate-AbstractMethods) nmap <leader>jA <Plug>(JavaComplete-Generate-Accessors) nmap <leader>js <Plug>(JavaComplete-Generate-AccessorSetter) nmap <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter) nmap <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter) nmap <leader>jts <Plug>(JavaComplete-Generate-ToString) nmap <leader>jeq <Plug>(JavaComplete-Generate-EqualsAndHashCode) nmap <leader>jc <Plug>(JavaComplete-Generate-Constructor) nmap <leader>jcc <Plug>(JavaComplete-Generate-DefaultConstructor) imap <C-j>s <Plug>(JavaComplete-Generate-AccessorSetter) imap <C-j>g <Plug>(JavaComplete-Generate-AccessorGetter) imap <C-j>a <Plug>(JavaComplete-Generate-AccessorSetterGetter) vmap <leader>js <Plug>(JavaComplete-Generate-AccessorSetter) vmap <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter) vmap <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter) nmap <silent> <buffer> <leader>jn <Plug>(JavaComplete-Generate-NewClass) nmap <silent> <buffer> <leader>jN <Plug>(JavaComplete-Generate-ClassInFile) " Solarized let g:solarized_degrade=1 " NERD tree let NERDChristmasTree=0 let NERDTreeWinSize=35 let NERDTreeChDirMode=2 let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$'] let NERDTreeShowBookmarks=1 let NERDTreeWinPos="left" " Automatically open a NERDTree if no files where specified autocmd vimenter * if !argc() | NERDTree | endif " Close vim if the only window left open is a NERDTree autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " Open a NERDTree nmap <F4> :NERDTreeToggle<cr> " Tagbar let g:tagbar_width=35 let g:tagbar_autofocus=1 nmap <F6> :TagbarToggle<CR> " configure syntastic syntax checking to check on open as well as save let g:syntastic_check_on_open=1 let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ng-"] let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_wq = 0 set statusline+=%#warningmsg# " set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* set autoindent set cindent " Doxygen let g:DoxygenToolkit_briefTag_pre="@Synopsis " let g:DoxygenToolkit_paramTag_pre="@Param " let g:DoxygenToolkit_returnTag="@Returns " let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------" let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------" let g:DoxygenToolkit_authorName="Mathias Lorente" function! s:compile_and_run() exec 'w' if &filetype == 'c' exec "AsyncRun! gcc % -o %<; time ./%<" elseif &filetype == 'cpp' exec "AsyncRun! g++ -std=c++11 % -o %<; time ./%<" elseif &filetype == 'java' exec "AsyncRun! javac %; time java %<" elseif &filetype == 'sh' exec "AsyncRun! time bash %" elseif &filetype == 'python' exec "AsyncRun! time python %" shellescape(@%, 1) endif endfunction function s:Count_Words() range let lnum=a:firstline let n=0 while lnum <= a:lastline let n += len(split(getline(lnum))) let lnum += 1 endwhile echo "Found ".n." words." endfunction " You can use other keymappings like <C-l> instead of <CR> if you want to " " use these mappings as default search and somtimes want to move cursor with " " EasyMotion. "function! s:incsearch_config(...) abort " return incsearch#util#deepextend(deepcopy({ " \ 'modules': [incsearch#config#easymotion#module({'overwin': 1})], " \ 'keymap': { " \ "\<CR>": '<Over>(easymotion)' " \ }, " \ 'is_expr': 0 " \ }), get(a:, 1, {})) "endfunction "noremap <silent><expr> / incsearch#go(<SID>incsearch_config()) "noremap <silent><expr> ? incsearch#go(<SID>incsearch_config({'command': '?'})) "noremap <silent><expr> g/ incsearch#go(<SID>incsearch_config({'is_stay': 1})) " function! s:config_easyfuzzymotion(...) abort " return extend(copy({ " \ 'converters': [incsearch#config#fuzzyword#converter()], " \ 'modules': [incsearch#config#easymotion#module({'overwin': 1})], " \ 'keymap': {"\<CR>": '<Over>(easymotion)'}, " \ 'is_expr': 0, " \ 'is_stay': 1 " \ }), get(a:, 1, {})) "endfunction "noremap <silent><expr> <Space>/ incsearch#go(<SID>config_easyfuzzymotion())