Vim: Reorganize mapping into a single place

This commit is contained in:
Robert Kmiec
2020-07-07 14:55:54 +02:00
parent f39aff0edf
commit 421d33b90e

View File

@@ -132,10 +132,19 @@ set ttyfast
set lazyredraw set lazyredraw
set ruler set ruler
set backspace=eol,indent,start set backspace=eol,indent,start
" statusline {{{
set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
set laststatus=2 set laststatus=2
" Vista configuration
function! NearestMethodOrFunction() abort
return get(b:, 'vista_nearest_method_or_function', '')
endfunction
set statusline+=\
set statusline+=%{NearestMethodOrFunction()}
" }}}
set number set number
set norelativenumber set relativenumber
" Make Vim to handle long lines nicely. " Make Vim to handle long lines nicely.
set wrap set wrap
set textwidth=79 set textwidth=79
@@ -158,6 +167,7 @@ nnoremap <leader><space> :nohlsearch<cr>
set shell=/bin/bash set shell=/bin/bash
set path+=** set path+=**
packadd termdebug
" Undofile {{{ " Undofile {{{
@@ -179,19 +189,16 @@ let g:gutentags_cache_dir='~/.vim/tags'
"let g:gutentags_ctags_extra_args=['--fields=+l'] "let g:gutentags_ctags_extra_args=['--fields=+l']
" }}} " }}}
"
" Mappings {{{
" Editing {{{
"Changing Leader Key "Changing Leader Key
let mapleader = "\\" let mapleader = "\\"
" Make pasting done without any indentation break
set pastetoggle=<F3>
set clipboard=unnamed
nnoremap <leader>j J nnoremap <leader>j J
nnoremap <leader>k K nnoremap <leader>k K
nnoremap J 5j nnoremap J 5j
nnoremap K 5k nnoremap K 5k
"nnoremap j gj "nnoremap j gj
"nnoremap k gk "nnoremap k gk
@@ -199,31 +206,91 @@ nnoremap K 5k
inoremap <F1> <ESC> inoremap <F1> <ESC>
nnoremap <F1> <ESC> nnoremap <F1> <ESC>
vnoremap <F1> <ESC> vnoremap <F1> <ESC>
" jj For Quicker Escaping between normal and editing mode
inoremap jj <ESC>
inoremap jk <ESC>
inoremap :w<CR> <Esc>:w<CR>i
" Map : to ; also in command mode. " space one line, home,end globally increase/decrease
nnoremap <space><space> za
nnoremap <Home> zm
nnoremap <End> zr
" Map : to ; also in command mode
"nnoremap ; : "nnoremap ; :
" Reselect visual block after incrementing/decrementing " Reselect visual block after incrementing/decrementing
vnoremap <c-a> <c-a>gv vnoremap <c-a> <c-a>gv
vnoremap <c-x> <c-x>gv vnoremap <c-x> <c-x>gv
" Set vim to save the file on focus out nnoremap <leader>2 <esc>:set tabstop=2 softtabstop=2 shiftwidth=2<cr>
"au FocusLost * :wa nnoremap <leader>4 <esc>:set tabstop=4 softtabstop=4 shiftwidth=4<cr>
nnoremap <leader>8 <esc>:set tabstop=8 softtabstop=8 shiftwidth=8<cr>
map <F12> :colorscheme random<CR>
" Make pasting done without any indentation break
set pastetoggle=<F3>
" leader Command to remove white space from a file " leader Command to remove white space from a file
""nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR> ""nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
" Re-hardwrap Paragraph tnoremap <Esc> <C-W><C-W>
nnoremap <leader>q gqip " }}}
" Plugins {{{
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" jj For Quicker Escaping between normal and editing mode nmap <silent> gd <Plug>(coc-definition)
inoremap jj <ESC> nmap <silent> gy <Plug>(coc-type-definition)
inoremap jk <ESC> nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Resize Split When the window is resized nnoremap <silent> <space>k :call <SID>show_documentation()<CR>
au VimResized * :wincmd =
" Wildmenu completion xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
" Show all diagnostics
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<CR>"
let g:UltiSnipsJumpBackwardTrigger="<leader>p"
" yoink configuration
nmap <leader>p <plug>(YoinkPostPasteSwapBack)
nmap <leader>n <plug>(YoinkPostPasteSwapForward)
nmap p <plug>(YoinkPaste_p)
nmap P <plug>(YoinkPaste_P)
nnoremap <leader>l :Lines<CR>
nnoremap <leader>b :Buffers<CR>
nnoremap <leader>s :Snippets<CR>
nnoremap <leader>a :Ag <C-R><C-W><CR>
" Tagbar key bindings."
"nmap <leader>t :TlistToggle<cr>
" }}}
" }}}
set clipboard=unnamed
" Wildmenu completion {{{
set wildmenu set wildmenu
set wildmode=list:longest set wildmode=list:longest
set wildignore+=.hg,.git,.svn " Version Controls" set wildignore+=.hg,.git,.svn " Version Controls"
@@ -237,6 +304,7 @@ set wildignore+=*.luac "Lua byte code"
set wildignore+=migrations "Django migrations" set wildignore+=migrations "Django migrations"
set wildignore+=*.pyc "Python Object codes" set wildignore+=*.pyc "Python Object codes"
set wildignore+=*.orig "Merge resolution files" set wildignore+=*.orig "Merge resolution files"
" }}}
match Error /\s\+$\|DU\cPA/ match Error /\s\+$\|DU\cPA/
@@ -265,87 +333,47 @@ let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1 let g:miniBufExplModSelTarget = 1
let g:miniBufExplStatusLineText = '' let g:miniBufExplStatusLineText = ''
" Tagbar key bindings."
"nmap <leader>t :TlistToggle<cr>
nnoremap <leader>2 <esc>:set tabstop=2 softtabstop=2 shiftwidth=2<cr>
nnoremap <leader>4 <esc>:set tabstop=4 softtabstop=4 shiftwidth=4<cr>
nnoremap <leader>8 <esc>:set tabstop=8 softtabstop=8 shiftwidth=8<cr>
"Full line: "Full line:
"set colorcolumn=120 "set colorcolumn=120
"call matchadd('ColorColumn', '\%80v', 100) "call matchadd('ColorColumn', '\%80v', 100)
if has("autocmd") if has("autocmd")
"restore cursor position "restore cursor position
autocmd BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif autocmd BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
autocmd FileType helpfile set nonumber autocmd FileType helpfile set nonumber
autocmd WinLeave * set nocursorline autocmd WinLeave * set nocursorline
autocmd WinEnter * set cursorline autocmd WinEnter * set cursorline
"autocmd FileType tex set textwidth=79 " Set vim to save the file on focus out
"autocmd FileType c,cpp,hpp,h :RainbowLevelsOn "au FocusLost * :wa
" Resize Split When the window is resized
au VimResized * :wincmd =
" If you want to show the nearest function in your statusline automatically
autocmd VimEnter * call vista#RunForNearestMethodOrFunction()
endif endif
"hi! link RainbowLevel0 Constant
"hi! link RainbowLevel1 Type
"hi! link RainbowLevel2 Function
"hi! link RainbowLevel3 String
"hi! link RainbowLevel4 PreProc
"hi! link RainbowLevel5 Statement
"hi! link RainbowLevel6 Identifier
"hi! link RainbowLevel7 Normal
"hi! link RainbowLevel8 Comment
"nnoremap yg :YcmCompleter GoTo<CR>
"nnoremap yf :YcmCompleter FixIt<CR>
"nnoremap yd :YcmCompleter GetDoc<CR>
"nnoremap yt :YcmCompleter GetType<CR>
"nnoremap yp :YcmCompleter GetParent<CR>
"let g:ycm_confirm_extra_conf = 0
"let g:ycm_warning_symbol = '>'
"let g:ycm_complete_in_strings = 0
"let g:ycm_collect_identifiers_from_tags_files = 1
"let g:ycm_enable_diagnostic_highlighting = 0
"let g:ycm_autoclose_preview_window_after_completion = 0
"let g:ycm_autoclose_preview_window_after_insertion = 1
"let g:ycm_min_num_of_chars_for_completion = 99
map <F12> :colorscheme random<CR>
" Folding {{{ " Folding {{{
function! FoldFormat() function! FoldFormat()
let foldsize = (v:foldend - v:foldstart) let foldsize = (v:foldend - v:foldstart)
return getline(v:foldstart)."\t\t\t(".foldsize."\tmore lines)" return getline(v:foldstart)."\t\t\t(".foldsize."\tmore lines)"
endfunction endfunction
" space one line, home,end globally increase/decrease
set foldenable set foldenable
set foldlevelstart=999 set foldlevelstart=999
set foldnestmax=5 set foldnestmax=5
set foldtext=FoldFormat() set foldtext=FoldFormat()
set fillchars=fold:\ " comment just to remove trailing set fillchars=fold:\ " comment just to remove trailing
set foldmethod=syntax set foldmethod=syntax
nnoremap <space> za if has('folding')
nnoremap <Home> zm setglobal foldopen+=jump
nnoremap <End> zr endif
" }}} " }}}
set updatetime=100 set updatetime=100
" From C.vim:
" ADDITIONAL MAPPING : complete a classical C comment: '/*' => '/* | */'
"vnoremap <buffer> /* s/*<Space><Space>*/<Left><Left><Left><Esc>p
" additional mapping : complete a classical C multi-line comment:
"inoremap <buffer> /*<CR> /*<CR><CR>/<Esc>kA<Space>
" additional mapping : {<CR> always opens a block
"inoremap <buffer> {<CR> {<CR>}<Esc>O
"vnoremap <buffer> {<CR> S{<CR>}<Esc>Pk=iB
inoremap :w<CR> <Esc>:w<CR>i
"nnoremap <F2> :silent ! plantuml %:p && eog -g %:p:r.png &<CR>:redraw!<CR>
" ctrlp configuration " ctrlp configuration
"let g:ctrlp_map = '<c-p>' "let g:ctrlp_map = '<c-p>'
"let g:ctrlp_cmd = 'CtrlPLastMode' "let g:ctrlp_cmd = 'CtrlPLastMode'
@@ -353,49 +381,22 @@ inoremap :w<CR> <Esc>:w<CR>i
"let g:ctrlp_working_path_mode = 'rw' "let g:ctrlp_working_path_mode = 'rw'
nnoremap <c-p> :FZF<CR> nnoremap <c-p> :FZF<CR>
tnoremap <Esc> <C-W><C-W>
set nospell set nospell
set runtimepath+=/usr/share/vim/vimfiles set runtimepath+=/usr/share/vim/vimfiles
set spelllang=en set spelllang=en
" Dictionary path, from which the words are being looked up. " Dictionary path, from which the words are being looked up.
set dictionary+=/usr/share/dict/words set dictionary+=/usr/share/dict/words
" from vimconfig.com
"let g:rtagsRcCmd='rtags-rc'
"let g:matchparen_timeout = 2
"let g:matchparen_insert_timeout = 2
" Mapping to NERDTree " Mapping to NERDTree
"nnoremap <C-n> :e .<CR>
nnoremap <C-n> :NERDTreeToggle<CR> nnoremap <C-n> :NERDTreeToggle<CR>
let NERDTreeIgnore=['\.vim$', '\~$', '\.pyc$'] let NERDTreeIgnore=['\.vim$', '\~$', '\.pyc$']
"nnoremap <C-n> :e .<CR>
"let g:netrw_banner=0 "let g:netrw_banner=0
"let g:netrw_wisize=20 "let g:netrw_wisize=20
"let g:netrw_liststyle=3 "let g:netrw_liststyle=3
"let g:netrw_lolcalrmdir='rm -r' "let g:netrw_lolcalrmdir='rm -r'
"nnoremap <leader>n :Lexplore<CR> "nnoremap <leader>n :Lexplore<CR>
" taken from Damian Conway
"nnoremap <silent> n n:call HLNext(0.2)<cr>
"nnoremap <silent> N N:call HLNext(0.2)<cr>
"
"function! HLNext(blinktime)
" let [bufnum, lnum, col, off] = getpos('.')
" let matchlen = strlen(matchstr(strpart(getline('.'), col - 1), @/))
" let target_pat = '\c\%#'.@/
" let blinks = 1
" for n in range(1, blinks)
" let red = matchadd('WarningMsg', target_pat, 101)
" redraw
" exec 'sleep ' . float2nr(a:blinktime / (2*blinks) * 1000) . 'm'
" call matchdelete(red)
" redraw
" exec 'sleep ' . float2nr(a:blinktime / (2*blinks) * 1000) . 'm'
" endfor
"endfunction
nnoremap S :%s//g<LEFT><LEFT> nnoremap S :%s//g<LEFT><LEFT>
xnoremap S :s//g<LEFT><LEFT> xnoremap S :s//g<LEFT><LEFT>
xmap <BS> x xmap <BS> x
@@ -408,7 +409,7 @@ function! FindAlternate()
elseif (l:curr_ext == 'cpp') elseif (l:curr_ext == 'cpp')
let l:ext = 'h' let l:ext = 'h'
elseif (l:curr_ext == 'h') elseif (l:curr_ext == 'h')
let l:ext = 'cpp' let l:ext = 'c'
elseif (l:curr_ext == 'hpp') elseif (l:curr_ext == 'hpp')
let l:ext = 'cpp' let l:ext = 'cpp'
endif endif
@@ -420,27 +421,20 @@ nnoremap <F6> :call FindAlternate()<CR>
"let g:alternateSearchPath="sfr:../source,sfr:../src,sfr:../include,sfr:../inc,sfr:./Source,sfr:.." "let g:alternateSearchPath="sfr:../source,sfr:../src,sfr:../include,sfr:../inc,sfr:./Source,sfr:.."
"map <F6> :call CurtineIncSw()<CR> "map <F6> :call CurtineIncSw()<CR>
" taken from tpope let g:startify_custom_header = ''
setglobal complete-=i setglobal complete-=i
setglobal virtualedit=block setglobal virtualedit=block
setglobal shiftround setglobal shiftround
if has('folding')
setglobal foldopen+=jump
endif
packadd termdebug
let g:startify_custom_header = ''
set shortmess+=c set shortmess+=c
inoremap <silent><expr> <c-space> coc#refresh() "inoremap <silent><expr> <leader><space> coc#refresh()
set signcolumn=yes set signcolumn=yes
set cmdheight=2 set cmdheight=2
inoremap <silent><expr> <TAB> "inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" : " \ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" : " \ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh() " \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort function! s:check_back_space() abort
@@ -448,15 +442,6 @@ function! s:check_back_space() abort
return !col || getline('.')[col - 1] =~# '\s' return !col || getline('.')[col - 1] =~# '\s'
endfunction endfunction
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation() function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0) if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>') execute 'h '.expand('<cword>')
@@ -466,55 +451,8 @@ function! s:show_documentation()
endfunction endfunction
autocmd CursorHold * silent call CocActionAsync('highlight') autocmd CursorHold * silent call CocActionAsync('highlight')
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
" Show all diagnostics
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
" Vista configuration
function! NearestMethodOrFunction() abort
return get(b:, 'vista_nearest_method_or_function', '')
endfunction
set statusline+=\
set statusline+=%{NearestMethodOrFunction()}
" By default vista.vim never run if you don't call it explicitly.
"
" If you want to show the nearest function in your statusline automatically
autocmd VimEnter * call vista#RunForNearestMethodOrFunction()
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<CR>"
let g:UltiSnipsJumpBackwardTrigger="<leader>p"
" yoink configuration
nmap <leader>p <plug>(YoinkPostPasteSwapBack)
nmap <leader>n <plug>(YoinkPostPasteSwapForward)
nmap p <plug>(YoinkPaste_p)
nmap P <plug>(YoinkPaste_P)
hi None ctermbg=None ctermfg=None hi None ctermbg=None ctermfg=None
nnoremap <leader>l :Lines<CR>
nnoremap <leader>b :Buffers<CR>
nnoremap <leader>s :Snippets<CR>
nnoremap <leader>a :Ag <C-R><C-W><CR>
let g:vim_search_pulse_mode = 'pattern' let g:vim_search_pulse_mode = 'pattern'
let g:vim_search_pulse_duration = 400 let g:vim_search_pulse_duration = 400