Commit Graph

7 Commits

Author SHA1 Message Date
Ingo Karkat
2914f11f74 Support repetition with original register
For commands that take an optional register (like p/P), Vim uses the
same register on repetition. This enhancement allows the same for custom
mappings, which need to call repeat#setreg() before repeat#set(). (No
changes for the vast majority of mappings that don't use registers.) It
even supports repeat of the expression register, with the expression
being re-evaluated on repeat.
2012-03-10 14:18:41 -05:00
Ingo Karkat
476c28084e Don't increment b:changedtick, offer invalidate instead
repeat#set() so far automatically incremented b:changedtick. Problems
with this:
1. The way that was done clobbered the expression register "=.
2. It causes the "readonly" warning and "Cannot make changes" error in
   readonly/nomodifiable buffers, so mappings that don't modify anything
   cannot be repeated there.
3. It's actually not needed most of the time, because many user mappings
   and all repeatable Vim built-in normal mode commands I know (with the
   exception of yank with cpo+=y) actually do modify the buffer
   themselves.

For the exceptional case where the user has a set of related mappings,
one that repeats naturally (e.g. a custom operator, via g@), and one
that invokes repeat#set(), and both do not modify the buffer, a new
function repeat#invalidate() is offered. This should be called by the
former mapping, and all is well.
2012-03-10 14:16:58 -05:00
xaizek
1118a8324f Fix adding trailing spaces when 've' is not empty
The problem appears when cursor is positioned after line end, thus
running p command (even with empty "-register) causes Vim to add spaces
from line end until cursor.
2012-02-23 16:41:35 -05:00
Tim Pope
cdffdd4381 Clarify copyright 2011-08-29 16:11:07 -04:00
Tim Pope
ecab7ca1b7 Fix heading 2011-08-29 02:47:25 -04:00
Tim Pope
1f19cf2a03 Add script id to heading 2011-08-29 02:14:44 -04:00
Tim Pope
c4101c205e Initial commit 2008-04-25 17:24:17 -05:00