Undo

From Wikipedia, the free encyclopedia

Undo is a command in most creative programs. It erases the last change done to the document reverting it back 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. The opposite of undo is redo. Undo is used in many programs and is a helpful feature.

The command Redo is a common command on many programs which store undo buffers. The Redo command reverses the undo or advances the buffer to a more current state.

In most Windows applications, the Undo command is activated by pressing Ctrl-Z. In most 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.

[edit] Undo models

Undo models can be categorized according to two criteria: linear vs non-linear, and single-user vs multi-user. Linear undo requires the user to revert the latest action before undoing earlier ones. With non-linear undo, the action to be reverted can be freely picked from the action history list.

Non-linear undo can be further subcategorized into direct selective undo vs. script interpretation undo.

When multiple users can edit the same document simultaneously, a multi-user undo is needed. Global multi-user undo reverts the latest action made to the document, regardless on who performed the edit. Local multi-user undo only reverts actions done by the local user. Local multi-user undo usually requires a non-linear undo implementation.

The number of previous actions that can be undone varies by program. For example, the stack size ranges from unlimited in Photoshop to three edits in MS Paint. Simplistic, single-edit undo features sometimes do away with "redo" by treating the undo command itself as an action that can be undone.

[edit] Undo implementation

The Command pattern is a software design pattern which can be used to implement Multi-level Undo. The Memento pattern is useful for capturing the state of the program before user actions. This can be used for state reversal needed in some undo implementations.

[edit] External links

In other languages