diff options
-rw-r--r-- | plugin/supert.vim | 90 |
1 files changed, 51 insertions, 39 deletions
diff --git a/plugin/supert.vim b/plugin/supert.vim index bd8f312..c32fc3e 100644 --- a/plugin/supert.vim +++ b/plugin/supert.vim @@ -6,13 +6,22 @@ endif let s:last = [] +let s:last_char = '' +function! s:getchar() + echom "Is not repeating? " . string(! exists('v:repeating') || ! v:repeating) + if ! exists('v:repeating') || ! v:repeating + let s:last_char = nr2char(getchar()) + endif + return s:last_char +endfunction + function! s:do_search(type, vis) abort if a:type == ';' call s:do_last(0, a:vis) elseif a:type == ',' call s:do_last(1, a:vis) else - call s:do_search_ch(a:type, a:vis, nr2char(getchar())) + call s:do_search_ch(a:type, a:vis, s:getchar()) endif endfunction @@ -66,50 +75,53 @@ function! s:do_search_ch(type, vis, ch) endwhile endfunction -nnoremap <silent> <Plug>(supert-replace-t) :<c-u>silent call <SID>do_search('t', '')<cr> -nnoremap <silent> <Plug>(supert-replace-T) :<c-u>silent call <SID>do_search('T', '')<cr> -nnoremap <silent> <Plug>(supert-replace-f) :<c-u>silent call <SID>do_search('f', '')<cr> -nnoremap <silent> <Plug>(supert-replace-F) :<c-u>silent call <SID>do_search('F', '')<cr> +nnoremap <Plug>(supert-replace-t) :<c-u>call <SID>do_search('t', '')<cr> +nnoremap <Plug>(supert-replace-T) :<c-u>call <SID>do_search('T', '')<cr> +nnoremap <Plug>(supert-replace-f) :<c-u>call <SID>do_search('f', '')<cr> +nnoremap <Plug>(supert-replace-F) :<c-u>call <SID>do_search('F', '')<cr> -vnoremap <silent> <Plug>(supert-replace-t) :<c-u>silent call <SID>do_search('t', 'v')<cr> -vnoremap <silent> <Plug>(supert-replace-T) :<c-u>silent call <SID>do_search('T', 'v')<cr> -vnoremap <silent> <Plug>(supert-replace-f) :<c-u>silent call <SID>do_search('f', 'v')<cr> -vnoremap <silent> <Plug>(supert-replace-F) :<c-u>silent call <SID>do_search('F', 'v')<cr> +vnoremap <Plug>(supert-replace-t) :<c-u>call <SID>do_search('t', 'v')<cr> +vnoremap <Plug>(supert-replace-T) :<c-u>call <SID>do_search('T', 'v')<cr> +vnoremap <Plug>(supert-replace-f) :<c-u>call <SID>do_search('f', 'v')<cr> +vnoremap <Plug>(supert-replace-F) :<c-u>call <SID>do_search('F', 'v')<cr> -onoremap <silent> <Plug>(supert-replace-t) :<c-u>silent call <SID>do_search('t', 'o')<cr> -onoremap <silent> <Plug>(supert-replace-T) :<c-u>silent call <SID>do_search('T', 'o')<cr> -onoremap <silent> <Plug>(supert-replace-f) :<c-u>silent call <SID>do_search('f', 'o')<cr> -onoremap <silent> <Plug>(supert-replace-F) :<c-u>silent call <SID>do_search('F', 'o')<cr> +onoremap <Plug>(supert-replace-t) :<c-u>call <SID>do_search('t', 'o')<cr> +onoremap <Plug>(supert-replace-T) :<c-u>call <SID>do_search('T', 'o')<cr> +onoremap <Plug>(supert-replace-f) :<c-u>call <SID>do_search('f', 'o')<cr> +onoremap <Plug>(supert-replace-F) :<c-u>call <SID>do_search('F', 'o')<cr> ; -onoremap <silent> <Plug>(supert-replace-,) :<c-u>silent call <SID>do_search(',', 'o')<cr> -onoremap <silent> <Plug>(supert-replace-;) :<c-u>silent call <SID>do_search(';', 'o')<cr> +onoremap <Plug>(supert-replace-,) :<c-u>call <SID>do_search(',', 'o')<cr> +onoremap <Plug>(supert-replace-;) :<c-u>call <SID>do_search(';', 'o')<cr> -vnoremap <silent> <Plug>(supert-replace-,) :<c-u>silent call <SID>do_search(',', 'v')<cr> -vnoremap <silent> <Plug>(supert-replace-;) :<c-u>silent call <SID>do_search(';', 'v')<cr> +vnoremap <Plug>(supert-replace-,) :<c-u>call <SID>do_search(',', 'v')<cr> +vnoremap <Plug>(supert-replace-;) :<c-u>call <SID>do_search(';', 'v')<cr> -nnoremap <silent> <Plug>(supert-replace-,) :<c-u>silent call <SID>do_search(',', '')<cr> -nnoremap <silent> <Plug>(supert-replace-;) :<c-u>silent call <SID>do_search(';', '')<cr> +nnoremap <Plug>(supert-replace-,) :<c-u>call <SID>do_search(',', '')<cr> +nnoremap <Plug>(supert-replace-;) :<c-u>call <SID>do_search(';', '')<cr> if g:supert_provide_bindings - nnoremap <silent> <M-t> <Plug>(supert-replace-t) - nnoremap <silent> <M-T> <Plug>(supert-replace-T) - nnoremap <silent> <M-f> <Plug>(supert-replace-f) - nnoremap <silent> <M-F> <Plug>(supert-replace-F) - - vnoremap <silent> <M-t> <Plug>(supert-replace-t) - vnoremap <silent> <M-T> <Plug>(supert-replace-T) - vnoremap <silent> <M-f> <Plug>(supert-replace-f) - vnoremap <silent> <M-F> <Plug>(supert-replace-F) - - vnoremap <silent> <M-t> <Plug>(supert-replace-t) - vnoremap <silent> <M-T> <Plug>(supert-replace-T) - vnoremap <silent> <M-f> <Plug>(supert-replace-f) - vnoremap <silent> <M-F> <Plug>(supert-replace-F) - - vnoremap <silent> <M-;> <Plug>(supert-replace-;) - vnoremap <silent> <M-,> <Plug>(supert-replace-,) - - nnoremap <silent> <M-;> <Plug>(supert-replace-;) - nnoremap <silent> <M-,> <Plug>(supert-replace-,) + nnoremap <M-t> <Plug>(supert-replace-t) + nnoremap <M-T> <Plug>(supert-replace-T) + nnoremap <M-f> <Plug>(supert-replace-f) + nnoremap <M-F> <Plug>(supert-replace-F) + + vnoremap <M-t> <Plug>(supert-replace-t) + vnoremap <M-T> <Plug>(supert-replace-T) + vnoremap <M-f> <Plug>(supert-replace-f) + vnoremap <M-F> <Plug>(supert-replace-F) + + onoremap <M-t> <Plug>(supert-replace-t) + onoremap <M-T> <Plug>(supert-replace-T) + onoremap <M-f> <Plug>(supert-replace-f) + onoremap <M-F> <Plug>(supert-replace-F) + + vnoremap <M-;> <Plug>(supert-replace-;) + vnoremap <M-,> <Plug>(supert-replace-,) + + nnoremap <M-;> <Plug>(supert-replace-;) + nnoremap <M-,> <Plug>(supert-replace-,) + + onoremap <M-;> <Plug>(supert-replace-;) + onoremap <M-,> <Plug>(supert-replace-,) endif |