The Modernization of Emacs: keyboard shortcuts pain

Xah Lee xah at xahlee.org
Sat Aug 11 06:57:03 EDT 2007


The following is a FAQ from emacs modernization
http://xahlee.org/emacs/modernization.html

Q: Emacs's undo is superior, because the prevalent Undo/Redo system
actually loss info.

A: Emac's undo is very confusing and does not have a Redo command. To
redo after a undo, people are told to type something then do a undo.
Long time emacs user argue that it is technically superior because it
lets user to revert to any possible state of the past.

A practical problem with the way of emacs undo is that it repeats the
states in the action record. In the prevalent undo model, the action
record is linear, and each entry is unique. A user can easily arrive
at a desired previous state using undo and redo. In emacs's model, it
traverses the queue back and forth (or add existing states to the
stack). It is hard for a user to know when to do undo or do "some
random typing followed by undo" to get to the state he wants. In
particular, once a person did more than once of "some random typing
followed by undo", the undo record becomes too convoluted for a person
to keep in mind and often the undo action becomes useless at that
point.

If you take a survey among programers who use emacs for at least 1
year, perhaps more than 90% are confused by emacs's undo model and do
not find it useful. If you take a survey of software users other than
emacs, i do not think anyone will report their software's undo lacks
something to be desired.

It is reasonable to argue, that people work better with a simple undo/
redo model. Undo is practically used to erase a mistake or doing a
simple one-time revision. Once a user did a sequence of undos and
redos, we can assume that he arrived at a satisfactory point and
intends to start fresh from that point. If he needs extra revision
control, a more proper mechanism, one that people actually use, is to
revert to the saved version.

  Xah
  xah at xahlee.org
  http://xahlee.org/




More information about the Python-list mailing list