如题,本篇给大家介绍一下我个人的vim配置,话不多说,直接上图。
这是我的.vimrc.
你可以把如下文件复制到你的文件中,你也会拥有像我一样炫酷的界面。
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())