calc: Undo
4.8 Undoing Mistakes
====================
The shift-‘U’ key (‘calc-undo’) undoes the most recent operation. If
that operation added or dropped objects from the stack, those objects
are removed or restored. If it was a “store” operation, you are queried
whether or not to restore the variable to its original value. The ‘U’
key may be pressed any number of times to undo successively farther back
in time; with a numeric prefix argument it undoes a specified number of
operations. When the Calculator is quit, as with the ‘q’ (‘calc-quit’)
command, the undo history will be truncated to the length of the
customizable variable ‘calc-undo-length’ (Customizing Calc),
which by default is ‘100’. (Recall that ‘C-x * c’ is synonymous with
‘calc-quit’ while inside the Calculator; this also truncates the undo
history.)
Currently the mode-setting commands (like ‘calc-precision’) are not
undoable. You can undo past a point where you changed a mode, but you
will need to reset the mode yourself.
The shift-‘D’ key (‘calc-redo’) redoes an operation that was
mistakenly undone. Pressing ‘U’ with a negative prefix argument is
equivalent to executing ‘calc-redo’. You can redo any number of times,
up to the number of recent consecutive undo commands. Redo information
is cleared whenever you give any command that adds new undo information,
i.e., if you undo, then enter a number on the stack or make any other
change, then it will be too late to redo.
The ‘M-<RET>’ key (‘calc-last-args’) is like undo in that it restores
the arguments of the most recent command onto the stack; however, it
does not remove the result of that command. Given a numeric prefix
argument, this command applies to the ‘n’th most recent command which
removed items from the stack; it pushes those items back onto the stack.
The ‘K’ (‘calc-keep-args’) command provides a related function to
‘M-<RET>’. Stack and Trail.
It is also possible to recall previous results or inputs using the
trail. Trail Commands.
The standard Emacs ‘C-_’ undo key is recognized as a synonym for ‘U’.