aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/move.vim9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugin/move.vim b/plugin/move.vim
index 88680cd..aa89f40 100644
--- a/plugin/move.vim
+++ b/plugin/move.vim
@@ -50,9 +50,14 @@ function! s:inner_next(operator, ai, open, close) abort
if v:operator =~ "[cd]"
" Cheese a 0-width by inserting a space to then immediately delete for d and c operators.
exec "normal! i \<esc>v"
- else
- " Other operations, just reset the position to what it was before.
+ elseif v:operator =~ "[y]"
+ " Yank operation, don't do anything.
call setpos('.', opos)
+ else
+ let [a, l, c, b] = getpos(".")
+ call setpos("'<", [a, l, c, b])
+ call setpos("'>", [a, l, c-1, b])
+ normal! gv
endif
return
endif