Undo is an interaction technique which is implemented in many computer programs. It erases the last change done to the document reverting it to an older state. In some more advanced programs such as graphic processing, undo will negate the last command done to the file being edited. With the possibility of undo, users can explore and work with the programs without fear of making mistakes because they can easily be undone.
So the expectations for undo are to be easy to understand, to have a predictable functionality and to include all undoable commands.[1] Usually undo is always available until the user undoes all executed operations back. But there are some actions which are not stored in the undo list and so there’s no possibility to undo these. For example saving file is not undoable, but is queued in the list to show, that this command was executed. Another action, which is not undoable and not stored, too, is scrolling or selection.[2]
The opposite of undo is redo. The redo command reverses the undo or advances the buffer to a more current state.
The usual common parts of the undo functionality are the commands, which were executed of the user, the history buffer(s), which store the completed actions, the undo/redo manager for controlling the history buffer and the user interface for interacting with the user.[3]
In most Windows applications, the Undo command is activated by pressing the Ctrl+Z or Alt+Backspace keybindings. In all Macintosh applications, the Undo command is activated by pressing Command-Z. The common command for Redo on Microsoft Windows systems is Ctrl+Y or Ctrl+Shift+Z. The common command for Redo on Apple Macintosh systems is Command-Shift-Z.
History
The ability to undo an operation on a computer was independently invented multiple times, as a response to how people used computers.[4]
The File Retrieval and Editing System, developed starting in 1968 at Brown University, is reported to be the first computer-based system to have had an "undo" feature.[5][6]
Warren Teitelman developed a Programmer's Assistant as part of BBN-LISP with an Undo function, by 1971.[7]
The Xerox PARC Bravo text editor had an Undo command in 1974.[8] Behavioral Issues in the Use of Interactive Systems, a 1976 research report by Lance A. Miller and John C. Thomas of IBM, noted that "It would be quite useful to permit users to 'take back' at least the immediately preceding command (by issuing some special 'undo' command)."[9] The programmers at the Xerox PARC research center assigned the keyboard shortcut Ctrl-Z to the undo command, which became a crucial feature of text editors and word processors in the personal computer era.[10] In 1980, Larry Tesler of Xerox PARC began working at Apple Computer. There, he and Bill Atkinson advocated for the presence of the undo command as a standard fixture on the Apple Lisa. Atkinson was able to convince the individual developers of the Lisa's application software to include a single level of undo and redo, but was unsuccessful in lobbying for multiple levels.[citation needed]
Multi-level undo commands were introduced in the 1980s, allowing the users to take back a series of actions, not just the most recent one.[10] AtariWriter, a word-processing application introduced in 1982, featured undo. NewWord, another word-processing program released by NewStar in 1984, had an unerase command.[10] IBM's VisiWord also had an undelete command.