aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload/grappele.vim70
-rw-r--r--plugin/grappele.vim16
2 files changed, 53 insertions, 33 deletions
diff --git a/autoload/grappele.vim b/autoload/grappele.vim
index 74af532..418f365 100644
--- a/autoload/grappele.vim
+++ b/autoload/grappele.vim
@@ -1,36 +1,56 @@
function! grappele#Grappele(line, ...)
- let l:current_buffer = 0
- let l:column_position = 0
- let l:column_offset = 0
+ " let l:current_buffer = 0
+ " let l:column_position = 0
+ " 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
+ "
+ " if a:line ==# 0
+ " " Go to the end of the buffer
+ " $
+ " else
+ " let s:line = a:line
+ "
+ " call setpos('.', [
+ " \ l:current_buffer,
+ " \ a:line,
+ " \ l:column_position,
+ " \ l:column_offset
+ " \ ])
+ " endif
- let l:mode = get(a:, 1, '')
- let l:visualmode = get(a:, 2, '')
+ let l:line = ''
- normal! m'
-
- if l:mode ==# 'v'
- execute 'normal! ' . l:visualmode
- elseif l:mode ==# 'o'
- normal! V
- endif
-
- if a:line ==# 0
- " Go to the end of the buffer
- $
- else
+ if a:line !=# 0
let s:line = a:line
-
- call setpos('.', [
- \ l:current_buffer,
- \ a:line,
- \ l:column_position,
- \ l:column_offset
- \ ])
endif
+
+ echom s:line . 'G'
+ return 'G'
endfunction
function! grappele#Recall(mode)
if exists('s:line')
- call grappele#Grappele(s:line, a:mode, visualmode())
+ " call grappele#Grappele(s:line, a:mode, visualmode())
+
+ let l:line = s:line
+
+ if a:mode ==# 'o'
+ " let l:line += 1
+ elseif a:mode ==# 'v'
+ let l:line = visualmode() . l:line
+ endif
+
+ echom 'Recall: ' . l:line
+ execute 'normal! ' . l:line . 'G'
endif
endfunction
diff --git a/plugin/grappele.vim b/plugin/grappele.vim
index 9ab1400..e04c8e4 100644
--- a/plugin/grappele.vim
+++ b/plugin/grappele.vim
@@ -4,22 +4,22 @@ endif
let g:loaded_grappele = 1
-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>
+nnoremap <silent> <Plug>Grappele grappele#Grappele(v:count, 'n')
+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, 'n')<cr>
+ nnoremap <silent> <expr> G grappele#Grappele(v:count, 'n')
endif
if !hasmapto('<Plug>Grappele') || !maparg('G', 'v')
- vnoremap <silent> G
- \ :<c-u>call grappele#Grappele(v:count, 'v', visualmode())<cr>
+ vnoremap <silent> <expr> G
+ \ grappele#Grappele(v:count, 'v', visualmode())
endif
if !hasmapto('<Plug>Grappele') || !maparg('G', 'o')
- onoremap <silent> G :<c-u>call grappele#Grappele(v:count, 'o')<cr>
+ onoremap <silent> <expr> G grappele#Grappele(v:count, 'o')
endif
if !hasmapto('<Plug>GrappeleRecall') || !maparg('gG', 'n')