Subject: bug#15234: 24.3.50; Make C-x u repeatable

From: Drew Adams <[email-masked]>
Date: Tue, 3 Sep 2013 09:19:24 -0700 (PDT)

> > there are other, simple ways of exiting `undo' so
> > `u' will then insert (`<left> <right>', `x DEL', whatever).
> 
> Yes, there would be other ways of exiting undo, but I definitely
> prefer not having to "exit" `undo'.
> 
> In general, I think that modal operations should be avoided as much as
> possible, because IMO, they make the user interface more complex
> (uglier, worse...).

Yes and no.  Isearch has been greatly *improved* by binding keys in
`isearch-mode-map' to do particular things.  Some, especially RMS, have
argued against this, saying that it makes Isearch too modal - exactly
your argument.

But you have to "exit" Isearch anyway - it *is* modal, in a sense.  It's
just that there were originally a zillion ways to exit and now there are
a zillion minus a few.

Wrt `undo': When you repeat `undo' and you go past where you wanted,
what do you do?  You "exit" `undo' repeating by hitting some key, e.g.
`x', and then you start it again so it undoes that key and then undoes
its previous undoing.  IOW, you already "exit" undo repetition, whether
you think of it that way or not.

No, of course it's not really a mode.  One is not locked into repetition.
It's only modal in the sense that hitting an undo key again continues
undoing.  And the only thing new here is that `u' becomes an undo key
(when it follows `C-x u'), just like `C-/'.

You could argue that any function that takes control over input (what
you type next) is modal to some extent.  `y-or-n-p' is modal in this
sense.  Likewise `query-replace' and lots of other useful commands.
And yes, as you point out, they can make the UI more complex.  It's a
tradeoff.

Different users will feel differently about this feature, just as some
feel differently about the keys that have been added to Isearch.  Some
will welcome the change as an improvement.  Some will dislike it, e.g.,
because it changes their habits.

Out of curiosity, do you actually use `C-x u' today?  Not that you need
to, to have an opinion about this.  (I don't use it.)

How do you feel about having a separate command for this repeatable undo?