emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH] Make `C-x {' and `C-x }' repeatable


From: Stephen J. Turnbull
Subject: RE: [PATCH] Make `C-x {' and `C-x }' repeatable
Date: Fri, 24 May 2013 13:53:18 +0900

Drew Adams writes:

 > Ugly & inconvenient, IMHO.  And YAGNI.
 > User control is better.

Drew, there's no "Y" in "I ain't gonna need it".

Now, why would some values of "Y" want it?

(1) Discoverability.  Auto-acceleration would likely happen to me
    frequently, so I'd learn it.  (Maybe not learn to use it, but
    learn to avoid it, at least.)[1]  "C-u C-u C-x } } C-3 }" is not
    something I would likely try on my own, nor would I find it easy
    to remember if I read about it in passing.  Because of:

(2) Consistency.  I can't think of any other case where an infix key
    controls the behavior of a command.  You wouldn't need to learn
    anything special to take advantage of auto-acceleration, so it's
    weakly consistent with the existing Emacs UI.

(3) Usability.  Some people, like you, can estimate pretty well
    whether you need C-2 or C-3.  Others can't, and would need to 
    calculate, possibly costing more time than they save.  Auto-
    acceleration has no such cost of computation.

(4) Economy.  The advantage of user control is smaller than you
    suggest, I believe.  Anything bigger than C-1 will cause you to
    miss the target half the time or more.  Sometimes people will need
    to correct for overshooting, which means either starting over with
    the inverse command or using a negative count.  And even if they
    undershoot they need to switch to C-1.

I don't want it badly enough to write the code, but I suspect more
users will find it useful than the UI you propose.  Both are valid
proposals and worth experimenting with.

Footnotes: 
[1]  The excluded middle of "it happens but I learn nothing" is of
course the Unrealizable Ideal, because that means it's a perfect
optimization of my current behavior.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]