On Sat, Mar 05, 2011 at 01:31:50PM -0500, Donald Allen wrote: > On Sat, Mar 5, 2011 at 12:54 PM, Benjamin R. Haskell <v...@benizi.com> wrote: > > On Sat, 5 Mar 2011, Donald Allen wrote: > > > >> If you delete a line, it gets pushed onto the register stack (the line > >> lands in the "" register). If you then undo the delete with 'u', the > >> register stack doesn't get popped -- it remains as it was just prior to the > >> 'undo'. So the undo has not undone all the effects of the command you are > >> undoing. 7.3 with patches through 138. > > > > Undo isn't intended to "undo all the effects of the command", per se. It > > reverses a change (or a block of changes) made to a buffer, not changes to > > the state of the entire program. Can't quite see where in the help that's > > documented, but it seems rational to me. > > Yes, I also checked the documentation before sending my original > message and also was not able to find something definitive, which was > why I appended the question mark to my subject. > > Let's consider this a feature request, then. I think it's completely > reasonable to expect 'undo' to reverse the side-effects of an undone > command, where that's possible (I wouldn't expect it to undo the > changes to the filesystem as a result of a write command, for > example). In this case, I'd yanked some text that I wanted to 'put' in > a bunch of places. While going through the buffer, putting the text > where I wanted it, I noticed a line that needed to come out, so I > deleted it. Naturally, the next attempt to put gave me that line > instead of the original text I'd yanked.
Then you should have been putting from register 0 instead of register ". Register 0 is the last yank, while register " is the last yank or delete. -- James GPG Key: 1024D/61326D40 2003-09-02 James Vega <james...@jamessan.com>
signature.asc
Description: Digital signature