Undo

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 without fear of making mistakes, because they can easily be undone.

The expectations for undo are easy to understand: to have a predictable functionality, and to include all "undoable" commands.[1] Usually undo is available until the user undoes all executed operations. But there are some actions which are not stored in the undo list, and thus they cannot be undone. For example, save file is not undoable, but is queued in the list to show that it was executed. Another action which is usually not stored, and thus not undoable, is scrolling or selection.[2]

The opposite of to undo is to redo. The redo command reverses the undo or advances the buffer to a more recent state.

The common components of undo functionality are the commands which were executed of the user, the history buffer(s) which stores the completed actions, the undo/redo manager for controlling the history buffer, and the user interface for interacting with the user.[3]

In most graphical applications for the majority of the mainstream operating systems (such as Microsoft Windows, Linux and BSDs), the keyboard shortcut for the undo command is Ctrl+Z or Alt+Backspace, and the shortcut for redo is Ctrl+Y or Ctrl+Shift+Z. In most macOS applications, the shortcut for the undo command is Command-Z, and the shortcut for redo is Command-Shift-Z. On all platforms, the undo/redo functions can also be accessed via the Edit menu.

  1. ^ Berlage, Thomas (1994-09-01). "A selective undo mechanism for graphical user interfaces based on command objects". ACM Transactions on Computer-Human Interaction. 1 (3): 269–294. doi:10.1145/196699.196721. ISSN 1073-0516. S2CID 11848679.
  2. ^ Myers, Brad A.; Kosbie, David S. (1996-04-13). "Reusable hierarchical command objects". Proceedings of the SIGCHI conference on Human factors in computing systems common ground - CHI '96. ACM. pp. 260–267. doi:10.1145/238386.238526. ISBN 0897917774. S2CID 17033810.
  3. ^ Jakubec, Karel; Polák, Marek; Nečaský, Martin; Holubová, Irena (2014). "Undo/Redo Operations in Complex Environments". Procedia Computer Science. 32: 561–570. doi:10.1016/j.procs.2014.05.461. ISSN 1877-0509.