From 1926fc6c9fb6f724660a495f23afccc0830de069 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Thu, 13 Dec 2018 13:49:40 +0100 Subject: Add operator-pending and visual mode mappings New mappings that allow the stored `G` position to be used in both visual mode and operator-pending mode for greater flexibility. --- autoload/grappele.vim | 16 +++++++++++----- plugin/grappele.vim | 12 +++++++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/autoload/grappele.vim b/autoload/grappele.vim index 9139116..f9c7bd3 100644 --- a/autoload/grappele.vim +++ b/autoload/grappele.vim @@ -1,10 +1,16 @@ -function! grappele#Grappele(line) +function! grappele#Grappele(line, ...) let l:current_buffer = 0 let l:column_position = 0 let l:column_offset = 0 - + + let l:mode = get(a:, 1, '') + normal! m' - + + if l:mode ==# 'v' + normal! V + endif + if a:line ==# 0 " Go to the end of the buffer $ @@ -20,8 +26,8 @@ function! grappele#Grappele(line) endif endfunction -function! grappele#Recall() +function! grappele#Recall(mode) if exists('s:line') - call grappele#Grappele(s:line) + call grappele#Grappele(s:line, a:mode) endif endfunction diff --git a/plugin/grappele.vim b/plugin/grappele.vim index f02e46c..a0f0aa2 100644 --- a/plugin/grappele.vim +++ b/plugin/grappele.vim @@ -5,7 +5,9 @@ let g:loaded_grappele = 1 nnoremap Grappele :call grappele#Grappele(v:count) -nnoremap GrappeleRecall :call grappele#Recall() +nnoremap GrappeleRecall :call grappele#Recall('n') +vnoremap GrappeleRecall :call grappele#Recall('v') +onoremap GrappeleRecall :call grappele#Recall('o') if !hasmapto('Grappele') || !maparg('G', 'n') nnoremap G :call grappele#Grappele(v:count) @@ -14,3 +16,11 @@ endif if !hasmapto('GrappeleRecall') || !maparg('gG', 'n') nmap gG GrappeleRecall endif + +if !hasmapto('GrappeleRecall') || !maparg('gG', 'v') + vmap gG GrappeleRecall +endif + +if !hasmapto('GrappeleRecall') || !maparg('gG', 'o') + omap gG GrappeleRecall +endif -- cgit v1.2.3