/ .vimrc
.vimrc
1 " Plugins 2 3 call plug#begin() 4 5 Plug 'jiangmiao/auto-pairs' 6 Plug 'fneu/breezy' 7 Plug 'neoclide/coc.nvim', {'branch': 'release'} 8 " Plug 'itchyny/lightline.vim' 9 Plug 'preservim/nerdtree' 10 " Plug 'NLKNguyen/papercolor-theme' 11 Plug 'rust-lang/rust.vim' 12 " Plug 'dracula/vim', { 'as': 'dracula' } 13 Plug 'krischik/vim-ada' 14 Plug 'vim-airline/vim-airline' 15 Plug 'vim-airline/vim-airline-themes' 16 Plug 'ryanoasis/vim-devicons' 17 Plug 'vimwiki/vimwiki' 18 19 call plug#end() 20 21 " Configuration 22 23 filetype plugin indent on 24 25 set background=dark 26 set encoding=utf-8 27 set laststatus=2 28 set linebreak 29 let mapleader=" " 30 set nobackup 31 set nolist 32 set noshowmode 33 set nowritebackup 34 set signcolumn=yes 35 set updatetime=300 36 set wrap 37 38 syntax enable 39 40 "" Airline 41 let g:airline_powerline_fonts = 1 42 let g:airline_theme='breezy' 43 44 "" CoC 45 inoremap <silent><expr> <TAB> 46 \ coc#pum#visible() ? coc#pum#next(1) : 47 \ CheckBackspace() ? "\<Tab>" : 48 \ coc#refresh() 49 inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>" 50 51 inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() 52 \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" 53 54 function! CheckBackspace() abort 55 let col = col('.') - 1 56 return !col || getline('.')[col - 1] =~# '\s' 57 endfunction 58 59 if has('nvim') 60 inoremap <silent><expr> <c-space> coc#refresh() 61 else 62 inoremap <silent><expr> <c-@> coc#refresh() 63 endif 64 65 nmap <silent><nowait> [g <Plug>(coc-diagnostic-prev) 66 nmap <silent><nowait> ]g <Plug>(coc-diagnostic-next) 67 68 nmap <silent><nowait> gd <Plug>(coc-definition) 69 nmap <silent><nowait> gy <Plug>(coc-type-definition) 70 nmap <silent><nowait> gi <Plug>(coc-implementation) 71 nmap <silent><nowait> gr <Plug>(coc-references) 72 73 nnoremap <silent> K :call ShowDocumentation()<CR> 74 75 function! ShowDocumentation() 76 if CocAction('hasProvider', 'hover') 77 call CocActionAsync('doHover') 78 else 79 call feedkeys('K', 'in') 80 endif 81 endfunction 82 83 autocmd CursorHold * silent call CocActionAsync('highlight') 84 85 nmap <leader>rn <Plug>(coc-rename) 86 87 xmap <leader>f <Plug>(coc-format-selected) 88 nmap <leader>f <Plug>(coc-format-selected) 89 90 augroup mygroup 91 autocmd! 92 autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') 93 augroup end 94 95 xmap <leader>a <Plug>(coc-codeaction-selected) 96 nmap <leader>a <Plug>(coc-codeaction-selected) 97 98 nmap <leader>ac <Plug>(coc-codeaction-cursor) 99 nmap <leader>as <Plug>(coc-codeaction-source) 100 nmap <leader>qf <Plug>(coc-fix-current) 101 102 nmap <silent> <leader>re <Plug>(coc-codeaction-refactor) 103 xmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected) 104 nmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected) 105 106 nmap <leader>cl <Plug>(coc-codelens-action) 107 108 xmap if <Plug>(coc-funcobj-i) 109 omap if <Plug>(coc-funcobj-i) 110 xmap af <Plug>(coc-funcobj-a) 111 omap af <Plug>(coc-funcobj-a) 112 xmap ic <Plug>(coc-classobj-i) 113 omap ic <Plug>(coc-classobj-i) 114 xmap ac <Plug>(coc-classobj-a) 115 omap ac <Plug>(coc-classobj-a) 116 117 if has('nvim-0.4.0') || has('patch-8.2.0750') 118 nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" 119 nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" 120 inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" 121 inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" 122 vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" 123 vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" 124 endif 125 126 nmap <silent> <C-s> <Plug>(coc-range-select) 127 xmap <silent> <C-s> <Plug>(coc-range-select) 128 129 command! -nargs=0 Format :call CocActionAsync('format') 130 131 command! -nargs=? Fold :call CocAction('fold', <f-args>) 132 133 command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') 134 135 set statusline^={coc#status()}%{get(b:,'coc_current_function','')} 136 137 nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> 138 nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> 139 nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> 140 nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> 141 nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> 142 nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> 143 nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> 144 nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR> 145 146 "" Colorscheme 147 colorscheme breezy 148 149 "" Lightline 150 let g:lightline = { 151 \ 'colorscheme': 'breezy', 152 \ } 153 154 "" NERDTree 155 nmap <silent> <C-n> :NERDTreeToggle<CR>