From 72d93b67cf4424aaa6b0fd2931fd691219149359 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Thu, 1 Sep 2022 11:52:08 -0600 Subject: supert.vim: fix object mode. --- plugin/supert.vim | 90 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 39 deletions(-) (limited to 'plugin') 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 (supert-replace-t) :silent call do_search('t', '') -nnoremap (supert-replace-T) :silent call do_search('T', '') -nnoremap (supert-replace-f) :silent call do_search('f', '') -nnoremap (supert-replace-F) :silent call do_search('F', '') +nnoremap (supert-replace-t) :call do_search('t', '') +nnoremap (supert-replace-T) :call do_search('T', '') +nnoremap (supert-replace-f) :call do_search('f', '') +nnoremap (supert-replace-F) :call do_search('F', '') -vnoremap (supert-replace-t) :silent call do_search('t', 'v') -vnoremap (supert-replace-T) :silent call do_search('T', 'v') -vnoremap (supert-replace-f) :silent call do_search('f', 'v') -vnoremap (supert-replace-F) :silent call do_search('F', 'v') +vnoremap (supert-replace-t) :call do_search('t', 'v') +vnoremap (supert-replace-T) :call do_search('T', 'v') +vnoremap (supert-replace-f) :call do_search('f', 'v') +vnoremap (supert-replace-F) :call do_search('F', 'v') -onoremap (supert-replace-t) :silent call do_search('t', 'o') -onoremap (supert-replace-T) :silent call do_search('T', 'o') -onoremap (supert-replace-f) :silent call do_search('f', 'o') -onoremap (supert-replace-F) :silent call do_search('F', 'o') +onoremap (supert-replace-t) :call do_search('t', 'o') +onoremap (supert-replace-T) :call do_search('T', 'o') +onoremap (supert-replace-f) :call do_search('f', 'o') +onoremap (supert-replace-F) :call do_search('F', 'o') ; -onoremap (supert-replace-,) :silent call do_search(',', 'o') -onoremap (supert-replace-;) :silent call do_search(';', 'o') +onoremap (supert-replace-,) :call do_search(',', 'o') +onoremap (supert-replace-;) :call do_search(';', 'o') -vnoremap (supert-replace-,) :silent call do_search(',', 'v') -vnoremap (supert-replace-;) :silent call do_search(';', 'v') +vnoremap (supert-replace-,) :call do_search(',', 'v') +vnoremap (supert-replace-;) :call do_search(';', 'v') -nnoremap (supert-replace-,) :silent call do_search(',', '') -nnoremap (supert-replace-;) :silent call do_search(';', '') +nnoremap (supert-replace-,) :call do_search(',', '') +nnoremap (supert-replace-;) :call do_search(';', '') if g:supert_provide_bindings - nnoremap (supert-replace-t) - nnoremap (supert-replace-T) - nnoremap (supert-replace-f) - nnoremap (supert-replace-F) - - vnoremap (supert-replace-t) - vnoremap (supert-replace-T) - vnoremap (supert-replace-f) - vnoremap (supert-replace-F) - - vnoremap (supert-replace-t) - vnoremap (supert-replace-T) - vnoremap (supert-replace-f) - vnoremap (supert-replace-F) - - vnoremap (supert-replace-;) - vnoremap (supert-replace-,) - - nnoremap (supert-replace-;) - nnoremap (supert-replace-,) + nnoremap (supert-replace-t) + nnoremap (supert-replace-T) + nnoremap (supert-replace-f) + nnoremap (supert-replace-F) + + vnoremap (supert-replace-t) + vnoremap (supert-replace-T) + vnoremap (supert-replace-f) + vnoremap (supert-replace-F) + + onoremap (supert-replace-t) + onoremap (supert-replace-T) + onoremap (supert-replace-f) + onoremap (supert-replace-F) + + vnoremap (supert-replace-;) + vnoremap (supert-replace-,) + + nnoremap (supert-replace-;) + nnoremap (supert-replace-,) + + onoremap (supert-replace-;) + onoremap (supert-replace-,) endif -- cgit