Improve vimrc - abbreviation fix, some leader stuff

This commit is contained in:
Michael Campagnaro 2023-06-12 22:50:02 -04:00
parent 589abb9e46
commit a529cd6560

51
vimrc
View File

@ -570,7 +570,7 @@ augroup END
" Suspend vim process and return to the shell. Can return to vim with `fg`.
nnoremap <leader>z <c-z>
" edit a file
" Edit a file
nnoremap <leader>e :e
" Open the vimrc file for editing / reload vimrc file.
@ -614,8 +614,22 @@ noremap <c-h> <c-w><Left>
noremap <leader>m :vsplit<cr>
noremap <leader>mm :split<cr>
" Forward delete and replace a word.
noremap <leader>d ciw
" Faster way to activate the 'a' register. This is useful for putting different
" lines of text into the 'a' register and then pasting it as a group.
" You need to first use `<leader>a` and then subsequent use is <leader>A.
" The paste command will use this content until you do something with a
" different register. You can later paste the 'a' contents using `<leader>a p`
" This overwrites the contents of a.
noremap <leader>a "a
" This appends to a.
noremap <leader>aa "A
" Backward replace word including cursor character.
noremap <leader>d cvb
" Forward replace word.
noremap <leader>e cw
" Allow fast pasting by accessing the system clipboard register.
noremap <leader>p "+p
@ -728,26 +742,35 @@ function! WriteAllModifiedFilesAndCreateCtags()
call CreateCtags()
endfunction
cnoreabbrev w :call WriteCurrentFileAndCreateCtags()
cnoreabbrev W :call WriteCurrentFileAndCreateCtags()
cnoreabbrev wa :call WriteAllModifiedFilesAndCreateCtags()
cnoreabbrev Wa :call WriteAllModifiedFilesAndCreateCtags()
cnoreabbrev WA :call WriteAllModifiedFilesAndCreateCtags()
cnoreabbrev wq :call WriteCurrentFileAndCreateCtagsThenQuit()
cnoreabbrev Wq :call WriteCurrentFileAndCreateCtagsThenQuit()
cnoreabbrev WQ :call WriteCurrentFileAndCreateCtagsThenQuit()
" Create a command abbreviation that only applies when it's at the beginning
" of a ex command. If you were to do a normal cnoreabbrev or cabbrev then the
" subsitution can happen anywhere in the command line. It was mostly affecting
" my text search; I'd type '/w' and it would be replaced with the call to save
" and create ctags.
function! Cabbrev(key, value)
exe printf('cabbrev <expr> %s (getcmdtype() == ":" && getcmdpos() <= %d) ? %s : %s',
\ a:key, len(a:key)+1, string(a:value), string(a:key))
endfunction
call Cabbrev('w', 'call WriteCurrentFileAndCreateCtags()')
call Cabbrev('W', 'call WriteCurrentFileAndCreateCtags()')
call Cabbrev('wa', 'call WriteAllModifiedFilesAndCreateCtags()')
call Cabbrev('Wa', 'call WriteAllModifiedFilesAndCreateCtags()')
call Cabbrev('WA', 'call WriteAllModifiedFilesAndCreateCtags()')
call Cabbrev('wq', 'call WriteCurrentFileAndCreateCtagsThenQuit()')
call Cabbrev('Wq', 'call WriteCurrentFileAndCreateCtagsThenQuit()')
call Cabbrev('WQ', 'call WriteCurrentFileAndCreateCtagsThenQuit()')
nnoremap <leader>w :call WriteCurrentFileAndCreateCtags()<cr>
nnoremap <leader>x :call WriteCurrentFileAndCreateCtagsThenQuit()<cr>
nnoremap <leader>q :q<cr>
cnoreabbrev Q q
cnoreabbrev Qa qa
call Cabbrev('Q', 'q')
call Cabbrev('Qa', 'qa')
command! Qa qall
" Disable Ex mode.
noremap Q <Nop>
"##################################################################################
" MULTIPURPOSE TAB KEY
"##################################################################################