diff options
-rw-r--r-- | autoload/grappele.vim | 5 | ||||
-rw-r--r-- | plugin/grappele.vim | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/autoload/grappele.vim b/autoload/grappele.vim index f9c7bd3..74af532 100644 --- a/autoload/grappele.vim +++ b/autoload/grappele.vim @@ -4,10 +4,13 @@ function! grappele#Grappele(line, ...) let l:column_offset = 0 let l:mode = get(a:, 1, '') + let l:visualmode = get(a:, 2, '') normal! m' if l:mode ==# 'v' + execute 'normal! ' . l:visualmode + elseif l:mode ==# 'o' normal! V endif @@ -28,6 +31,6 @@ endfunction function! grappele#Recall(mode) if exists('s:line') - call grappele#Grappele(s:line, a:mode) + call grappele#Grappele(s:line, a:mode, visualmode()) endif endfunction diff --git a/plugin/grappele.vim b/plugin/grappele.vim index a0f0aa2..9ab1400 100644 --- a/plugin/grappele.vim +++ b/plugin/grappele.vim @@ -4,13 +4,22 @@ endif let g:loaded_grappele = 1 -nnoremap <silent> <Plug>Grappele :<c-u>call grappele#Grappele(v:count)<cr> +nnoremap <silent> <Plug>Grappele :<c-u>call grappele#Grappele(v:count, 'n')<cr> nnoremap <silent> <Plug>GrappeleRecall :<c-u>call grappele#Recall('n')<cr> vnoremap <silent> <Plug>GrappeleRecall :<c-u>call grappele#Recall('v')<cr> onoremap <silent> <Plug>GrappeleRecall :<c-u>call grappele#Recall('o')<cr> if !hasmapto('<Plug>Grappele') || !maparg('G', 'n') - nnoremap <silent> G :<c-u>call grappele#Grappele(v:count)<cr> + nnoremap <silent> G :<c-u>call grappele#Grappele(v:count, 'n')<cr> +endif + +if !hasmapto('<Plug>Grappele') || !maparg('G', 'v') + vnoremap <silent> G + \ :<c-u>call grappele#Grappele(v:count, 'v', visualmode())<cr> +endif + +if !hasmapto('<Plug>Grappele') || !maparg('G', 'o') + onoremap <silent> G :<c-u>call grappele#Grappele(v:count, 'o')<cr> endif if !hasmapto('<Plug>GrappeleRecall') || !maparg('gG', 'n') |