0
|
1
|
|
2 @node Undo, Minibuffer, Basic, Top
|
|
3 @chapter Undoing Changes
|
|
4 @cindex undo
|
|
5 @cindex mistakes, correcting
|
|
6
|
|
7 Emacs allows you to undo all changes you make to the text of a buffer,
|
|
8 up to a certain amount of change (8000 characters). Each buffer records
|
|
9 changes individually, and the undo command always applies to the
|
|
10 current buffer. Usually each editing command makes a separate entry
|
|
11 in the undo records, but some commands such as @code{query-replace}
|
|
12 make many entries, and very simple commands such as self-inserting
|
|
13 characters are often grouped to make undoing less tedious.
|
|
14
|
|
15 @table @kbd
|
|
16 @item C-x u
|
|
17 Undo one batch of changes (usually, one command's worth) (@code{undo}).
|
|
18 @item C-_
|
|
19 The same.
|
|
20 @end table
|
|
21
|
|
22 @kindex C-x u
|
|
23 @kindex C-_
|
|
24 @findex undo
|
|
25 The command @kbd{C-x u} or @kbd{C-_} allows you to undo changes. The
|
|
26 first time you give this command, it undoes the last change. Point
|
|
27 moves to the text affected by the undo, so you can see what was undone.
|
|
28
|
|
29 Consecutive repetitions of the @kbd{C-_} or @kbd{C-x u} commands undo
|
|
30 earlier and earlier changes, back to the limit of what has been
|
|
31 recorded. If all recorded changes have already been undone, the undo
|
|
32 command prints an error message and does nothing.
|
|
33
|
|
34 Any command other than an undo command breaks the sequence of undo
|
|
35 commands. Starting at this moment, the previous undo commands are
|
|
36 considered ordinary changes that can themselves be undone. Thus, you can
|
|
37 redo changes you have undone by typing @kbd{C-f} or any other command
|
|
38 that have no important effect, and then using more undo commands.
|
|
39
|
|
40 If you notice that a buffer has been modified accidentally, the
|
|
41 easiest way to recover is to type @kbd{C-_} repeatedly until the stars
|
|
42 disappear from the front of the mode line. When that happens, all the
|
|
43 modifications you made have been canceled. If you do not remember
|
|
44 whether you changed the buffer deliberately, type @kbd{C-_} once. When
|
|
45 you see Emacs undo the last change you made, you probably remember why you
|
|
46 made it. If the change was an accident, leave it undone. If it was
|
|
47 deliberate, redo the change as described in the preceding paragraph.
|
|
48
|
|
49 Whenever an undo command makes the stars disappear from the mode line,
|
|
50 the buffer contents is the same as it was when the file was last read in
|
|
51 or saved.
|
|
52
|
|
53 Not all buffers record undo information. Buffers whose names start with
|
|
54 spaces don't; these buffers are used internally by Emacs and its extensions
|
|
55 to hold text that users don't normally look at or edit. Minibuffers,
|
|
56 help buffers, and documentation buffers also don't record undo information.
|
|
57
|
|
58 Emacs can remember at most 8000 or so characters of deleted or
|
|
59 modified text in any one buffer for reinsertion by the undo command.
|
|
60 There is also a limit on the number of individual insert, delete, or
|
|
61 change actions that Emacs can remember.
|
|
62
|
|
63 There are two keys to run the @code{undo} command, @kbd{C-x u} and
|
|
64 @kbd{C-_}, because on some keyboards, it is not obvious how to type
|
|
65 @kbd{C-_}. @kbd{C-x u} is an alternative you can type in the same
|
|
66 fashion on any terminal.
|