20 lines
437 B
VimL
20 lines
437 B
VimL
![]() |
nnoremap <silent> q <cmd>call <SID>SmartQ()<CR>
|
||
|
function! s:SmartQ()
|
||
|
if exists("g:recording_macro")
|
||
|
let r = g:recording_macro
|
||
|
unlet g:recording_macro
|
||
|
normal! q
|
||
|
execute 'let @'.r.' = @'.r.'[:-2]'
|
||
|
else
|
||
|
let c = nr2char(getchar())
|
||
|
if c == ':'
|
||
|
call feedkeys(":q")
|
||
|
else
|
||
|
if c =~ '\v[0-9a-zA-Z"]'
|
||
|
let g:recording_macro = c
|
||
|
endif
|
||
|
execute 'normal! q'.c
|
||
|
endif
|
||
|
endif
|
||
|
endfunction
|