aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2022-09-01 11:52:08 -0600
committerJosh Rahm <rahm@google.com>2022-09-01 11:52:08 -0600
commit72d93b67cf4424aaa6b0fd2931fd691219149359 (patch)
treefd858559e6d278e483b2e57c64a0e199fdbe6b04
parent473db604f7dbb203b3f481f0560e7abca8dfdea1 (diff)
downloadfieldmarshal.vim-72d93b67cf4424aaa6b0fd2931fd691219149359.tar.gz
fieldmarshal.vim-72d93b67cf4424aaa6b0fd2931fd691219149359.tar.bz2
fieldmarshal.vim-72d93b67cf4424aaa6b0fd2931fd691219149359.zip
supert.vim: fix object mode.
-rw-r--r--plugin/supert.vim90
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