-The first time you give this command, it undoes the last change.
-Point moves back to where it was before the command that made the
-change.
-
- Consecutive repetitions of @kbd{C-_} or @kbd{C-x u} undo earlier and
-earlier changes, back to the limit of the undo information available.
-If all recorded changes have already been undone, the undo command
-displays an error message and does nothing.
-
-@findex undo-only
- Any command other than an undo command breaks the sequence of undo
-commands. Starting from that moment, the previous undo commands become
-ordinary changes that you can undo. Thus, to redo changes you have
-undone, type @kbd{C-f} or any other command that will harmlessly break
-the sequence of undoing, then type more undo commands. On the other
-hand, if you want to ignore previous undo commands, use @kbd{M-x
-undo-only}. This is like @code{undo}, but will not redo changes
-you have just undone.
-
-@cindex selective undo
-@kindex C-u C-x u
- Ordinary undo applies to all changes made in the current buffer. You
-can also perform @dfn{selective undo}, limited to the current region
-(@pxref{Mark}).
-To do this, specify the region you want, then run the @code{undo}
-command with a prefix argument (the value does not matter): @kbd{C-u C-x
-u} or @kbd{C-u C-_}. This undoes the most recent change in the region.
-To undo further changes in the same region, repeat the @code{undo}
-command (no prefix argument is needed). In Transient Mark mode
-(@pxref{Transient Mark}), any use of @code{undo} when there is an
-active region performs selective undo; you do not need a prefix
-argument.
-
- If you notice that a buffer has been modified accidentally, the
-easiest way to recover is to type @kbd{C-_} repeatedly until the stars
-disappear from the front of the mode line. At this time, all the
-modifications you made have been canceled. Whenever an undo command
-makes the stars disappear from the mode line, it means that the buffer
-contents are the same as they were when the file was last read in or
-saved.
-
- If you do not remember whether you changed the buffer deliberately,
-type @kbd{C-_} once. When you see the last change you made undone, you
-will see whether it was an intentional change. If it was an accident,
-leave it undone. If it was deliberate, redo the change as described
-above.
-
- Not all buffers record undo information. Buffers whose names start with
-spaces don't; these buffers are used internally by Emacs and its extensions
-to hold text that users don't normally look at or edit.
-
- You cannot undo mere cursor motion; only changes in the buffer
-contents save undo information. However, some cursor motion commands
-set the mark, so if you use these commands from time to time, you can
-move back to the neighborhoods you have moved through by popping the
-mark ring (@pxref{Mark Ring}).
-
-@vindex undo-limit
-@vindex undo-strong-limit
-@vindex undo-outer-limit
-@cindex undo limit
- When the undo information for a buffer becomes too large, Emacs
-discards the oldest undo information from time to time (during garbage
-collection). You can specify how much undo information to keep by
-setting three variables: @code{undo-limit}, @code{undo-strong-limit},
-and @code{undo-outer-limit}. Their values are expressed in units of
-bytes of space.
-
- The variable @code{undo-limit} sets a soft limit: Emacs keeps undo
-data for enough commands to reach this size, and perhaps exceed it,
-but does not keep data for any earlier commands beyond that. Its
-default value is 20000. The variable @code{undo-strong-limit} sets a
-stricter limit: a previous command (not the most recent one) which
-pushes the size past this amount is itself forgotten. The default
-value of @code{undo-strong-limit} is 30000.
-
- Regardless of the values of those variables, the most recent change
-is never discarded unless it gets bigger than @code{undo-outer-limit}
-(normally 3,000,000). At that point, Emacs discards the undo data and
-warns you about it. This is the only situation in which you cannot
-undo the last command. If this happens, you can increase the value of
-@code{undo-outer-limit} to make it even less likely to happen in the
-future. But if you didn't expect the command to create such large
-undo data, then it is probably a bug and you should report it.
-@xref{Bugs,, Reporting Bugs}.
-
- The reason the @code{undo} command has three key bindings, @kbd{C-x
-u}, @kbd{C-_} and @kbd{C-/}, is that it is worthy of a
-single-character key, but @kbd{C-x u} is more straightforward for
-beginners to type.