Undo

from Wikipedia, the free encyclopedia

Undo ( English for "take back, undo") is an essential interaction technique in modern user interfaces and describes the function of application programs with which one or more actions can be undone . Depending on the scope of the application, the undo option can range from canceling the last action to canceling all work steps. The undo function is often combined with a redo function, which cancels a previous undo.

On the PC, the undo is usually triggered by pressing the key combination Ctrl + Z (under Microsoft Windows) or Command + Z (Apple Macintosh). That this key combination serves as a shortcut has its origin in the position of the keys: The Z is on the English keyboard next to the keys for the combinations for "Cut" ( Ctrl + X ), "Copy" ( Ctrl + C ) and "Paste" ( Ctrl + V ), in the immediate vicinity of the Ctrl key, and is therefore easy to reach. On German keyboards, however, the Z key is as far away from the Ctrl keys as possible.

The common keyboard shortcuts for Redo are Ctrl + Y or Ctrl + Shift + Z (or Command + Shift + Z in Macintosh programs).

history

Undoing operations on the computer is an important form of interaction in various work processes. Based on how and for what computers were used, there have been several approaches to introduce such a function. The File Retrieval and Editing System , which was developed at Brown University from 1968 onwards , is considered to be the first system to have an undo function. The Programmer's Assistant, developed by Warren Teitelman in 1971 as part of BBN-LISP, was also able to undo actions. The IBM -Staff Lance A. Miller and John C. Thomas noticed the Undo operation in their published 1976 essay Behavioral Issues in the Use of Interactive Systems ( "behavioral issues in the use of interactive systems"), that it would be quite useful if users could at least “undo” the last command (by executing a special “Undo” command) . Programmers at the research center Xerox PARC assigned the key combination Control + Z with an Undo command. In this form, the command quickly became an indispensable part of editors and word processing programs on personal computers. When Larry Tesler of Xerox PARC began working at Apple Computer in 1980 , he and Bill Atkinson campaigned for the introduction of an undo function on the Apple Lisa .

While the undo function initially only referred to the last action, the first programs were developed in the 1980s that could undo several actions (the so-called undo stack ). The first applications to implement an undo function were Atari Writer (1982), the word processing program NewWord (1984) with its unerase function, and IBM's VisiWord (1983, undelete ).

Models

Undo models can be categorized as linear or non-linear:

  • In a linear model, all actions are stored in an undo stack. In order to undo an earlier action, you must also undo all actions that happened afterwards.
  • With a non-linear model, any actions can be selected from a list and undone.

If several users can work on a document at the same time, this must also be taken into account with the undo function. If several users make global changes to a document ("global multi-user undo"), the last action that was carried out on a document is undone - regardless of which user initiated the action. With a local undo in a document used by several people ("local multi-user undo"), however, each user can only undo his own changes. This requires a non-linear implementation of the undo function.

The number of actions that are on the action list and can therefore be undone depends on the respective program and the hardware used. For example, in Adobe Photoshop , it contains 20 actions by default, but can be adjusted by the user. In Microsoft Paint can since 7 Microsoft Windows 50 actions are undone.

implementation

The provision of an undo function requires the existence of at least a rudimentary form of version management .

The undo functionality can either be implemented by saving the system state after every action by the user (see Memento (design pattern) ) so that every old state of the system can be restored; or the actions themselves are recorded in a list ( command pattern ). The second approach is only possible if all actions of the program are reversible.

See also

Individual evidence

  1. Belinda Barnet: Memory Machines: The Evolution of Hypertext. Anthem Press, December 1, 2014, accessed September 29, 2018 .
  2. Warren Teitelman: Automated programs ring: assistant the programmer's . ACM, December 5, 1972, pp. 917-921 , doi : 10.1145 / 1480083.1480119 ( acm.org [accessed September 29, 2018]).
  3. ^ Lance A. Miller, John C. Thomas Jr .: Behavioral issues in the use of interactive systems . In: International Journal of Man-Machine Studies . 9, No. 5, September 1977, ISSN  0020-7373 , pp. 509-536. doi : 10.1016 / S0020-7373 (77) 80002-3 .
  4. Ben Zimmer: The Age of Undoing . New York Times. September 15, 2009. Retrieved December 27, 2010.
  5. ^ The Ultimate IBM . In: Ziff Davis (Ed.): PC Mag . tape 2 , no. 2 , 1983, p. 33 .
  6. ^ Roberta Mancini, Alan Dix and Stefano Levialdi. 2006. "Reflections on Undo"
  7. Gregory Abowd, Alan Dix: Giving undo attention. Retrieved September 29, 2018 .