25829
|
1 @c This is part of the Emacs manual.
|
|
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
|
|
3 @c See file emacs.texi for copying conditions.
|
|
4 @node Fixit, Files, Search, Top
|
|
5 @chapter Commands for Fixing Typos
|
|
6 @cindex typos, fixing
|
|
7 @cindex mistakes, correcting
|
|
8
|
|
9 In this chapter we describe the commands that are especially useful for
|
|
10 the times when you catch a mistake in your text just after you have made
|
|
11 it, or change your mind while composing text on the fly.
|
|
12
|
|
13 The most fundamental command for correcting erroneous editing is the
|
|
14 undo command, @kbd{C-x u} or @kbd{C-_}. This command undoes a single
|
|
15 command (usually), a part of a command (in the case of
|
|
16 @code{query-replace}), or several consecutive self-inserting characters.
|
|
17 Consecutive repetitions of @kbd{C-_} or @kbd{C-x u} undo earlier and
|
|
18 earlier changes, back to the limit of the undo information available.
|
|
19 @xref{Undo}, for for more information.
|
|
20
|
|
21 @menu
|
|
22 * Kill Errors:: Commands to kill a batch of recently entered text.
|
|
23 * Transpose:: Exchanging two characters, words, lines, lists...
|
|
24 * Fixing Case:: Correcting case of last word entered.
|
|
25 * Spelling:: Apply spelling checker to a word, or a whole file.
|
|
26 @end menu
|
|
27
|
|
28 @node Kill Errors
|
|
29 @section Killing Your Mistakes
|
|
30
|
|
31 @table @kbd
|
|
32 @item @key{DEL}
|
|
33 Delete last character (@code{delete-backward-char}).
|
|
34 @item M-@key{DEL}
|
|
35 Kill last word (@code{backward-kill-word}).
|
|
36 @item C-x @key{DEL}
|
|
37 Kill to beginning of sentence (@code{backward-kill-sentence}).
|
|
38 @end table
|
|
39
|
|
40 The @key{DEL} character (@code{delete-backward-char}) is the most
|
|
41 important correction command. It deletes the character before point.
|
|
42 When @key{DEL} follows a self-inserting character command, you can think
|
|
43 of it as canceling that command. However, avoid the mistake of thinking
|
|
44 of @key{DEL} as a general way to cancel a command!
|
|
45
|
|
46 When your mistake is longer than a couple of characters, it might be
|
|
47 more convenient to use @kbd{M-@key{DEL}} or @kbd{C-x @key{DEL}}.
|
|
48 @kbd{M-@key{DEL}} kills back to the start of the last word, and @kbd{C-x
|
|
49 @key{DEL}} kills back to the start of the last sentence. @kbd{C-x
|
|
50 @key{DEL}} is particularly useful when you change your mind about the
|
|
51 phrasing of the text you are writing. @kbd{M-@key{DEL}} and @kbd{C-x
|
|
52 @key{DEL}} save the killed text for @kbd{C-y} and @kbd{M-y} to
|
|
53 retrieve. @xref{Yanking}.@refill
|
|
54
|
|
55 @kbd{M-@key{DEL}} is often useful even when you have typed only a few
|
|
56 characters wrong, if you know you are confused in your typing and aren't
|
|
57 sure exactly what you typed. At such a time, you cannot correct with
|
|
58 @key{DEL} except by looking at the screen to see what you did. Often it
|
|
59 requires less thought to kill the whole word and start again.
|
|
60
|
|
61 @node Transpose
|
|
62 @section Transposing Text
|
|
63
|
|
64 @table @kbd
|
|
65 @item C-t
|
|
66 Transpose two characters (@code{transpose-chars}).
|
|
67 @item M-t
|
|
68 Transpose two words (@code{transpose-words}).
|
|
69 @item C-M-t
|
|
70 Transpose two balanced expressions (@code{transpose-sexps}).
|
|
71 @item C-x C-t
|
|
72 Transpose two lines (@code{transpose-lines}).
|
|
73 @end table
|
|
74
|
|
75 @kindex C-t
|
|
76 @findex transpose-chars
|
|
77 The common error of transposing two characters can be fixed, when they
|
|
78 are adjacent, with the @kbd{C-t} command (@code{transpose-chars}). Normally,
|
|
79 @kbd{C-t} transposes the two characters on either side of point. When
|
|
80 given at the end of a line, rather than transposing the last character of
|
|
81 the line with the newline, which would be useless, @kbd{C-t} transposes the
|
|
82 last two characters on the line. So, if you catch your transposition error
|
|
83 right away, you can fix it with just a @kbd{C-t}. If you don't catch it so
|
|
84 fast, you must move the cursor back to between the two transposed
|
|
85 characters. If you transposed a space with the last character of the word
|
|
86 before it, the word motion commands are a good way of getting there.
|
|
87 Otherwise, a reverse search (@kbd{C-r}) is often the best way.
|
|
88 @xref{Search}.
|
|
89
|
|
90
|
|
91 @kindex C-x C-t
|
|
92 @findex transpose-lines
|
|
93 @kindex M-t
|
|
94 @findex transpose-words
|
|
95 @kindex C-M-t
|
|
96 @findex transpose-sexps
|
|
97 @kbd{M-t} (@code{transpose-words}) transposes the word before point
|
|
98 with the word after point. It moves point forward over a word, dragging
|
|
99 the word preceding or containing point forward as well. The punctuation
|
|
100 characters between the words do not move. For example, @w{@samp{FOO, BAR}}
|
|
101 transposes into @w{@samp{BAR, FOO}} rather than @samp{@w{BAR FOO,}}.
|
|
102
|
|
103 @kbd{C-M-t} (@code{transpose-sexps}) is a similar command for transposing
|
|
104 two expressions (@pxref{Lists}), and @kbd{C-x C-t} (@code{transpose-lines})
|
|
105 exchanges lines. They work like @kbd{M-t} except in determining the
|
|
106 division of the text into syntactic units.
|
|
107
|
|
108 A numeric argument to a transpose command serves as a repeat count: it
|
|
109 tells the transpose command to move the character (word, sexp, line)
|
|
110 before or containing point across several other characters (words,
|
|
111 sexps, lines). For example, @kbd{C-u 3 C-t} moves the character before
|
|
112 point forward across three other characters. It would change
|
|
113 @samp{f@point{}oobar} into @samp{oobf@point{}ar}. This is equivalent to
|
|
114 repeating @kbd{C-t} three times. @kbd{C-u - 4 M-t} moves the word
|
|
115 before point backward across four words. @kbd{C-u - C-M-t} would cancel
|
|
116 the effect of plain @kbd{C-M-t}.@refill
|
|
117
|
|
118 A numeric argument of zero is assigned a special meaning (because
|
|
119 otherwise a command with a repeat count of zero would do nothing): to
|
|
120 transpose the character (word, sexp, line) ending after point with the
|
|
121 one ending after the mark.
|
|
122
|
|
123 @node Fixing Case
|
|
124 @section Case Conversion
|
|
125
|
|
126 @table @kbd
|
|
127 @item M-- M-l
|
|
128 Convert last word to lower case. Note @kbd{Meta--} is Meta-minus.
|
|
129 @item M-- M-u
|
|
130 Convert last word to all upper case.
|
|
131 @item M-- M-c
|
|
132 Convert last word to lower case with capital initial.
|
|
133 @end table
|
|
134
|
|
135 @kindex M-@t{-} M-l
|
|
136 @kindex M-@t{-} M-u
|
|
137 @kindex M-@t{-} M-c
|
|
138 A very common error is to type words in the wrong case. Because of this,
|
|
139 the word case-conversion commands @kbd{M-l}, @kbd{M-u} and @kbd{M-c} have a
|
|
140 special feature when used with a negative argument: they do not move the
|
|
141 cursor. As soon as you see you have mistyped the last word, you can simply
|
|
142 case-convert it and go on typing. @xref{Case}.@refill
|
|
143
|
|
144 @node Spelling
|
|
145 @section Checking and Correcting Spelling
|
|
146 @cindex spelling, checking and correcting
|
|
147 @cindex checking spelling
|
|
148 @cindex correcting spelling
|
|
149
|
|
150 This section describes the commands to check the spelling of a single
|
|
151 word or of a portion of a buffer. These commands work with the spelling
|
|
152 checker program Ispell, which is not part of Emacs.
|
|
153 @ifinfo
|
|
154 @xref{Top, Ispell, Overview ispell, ispell.info, The Ispell Manual}.
|
|
155 @end ifinfo
|
|
156
|
|
157 @table @kbd
|
|
158 @item M-x flyspell-mode
|
|
159 Enable Flyspell mode, which highlights all misspelled words.
|
|
160 @item M-$
|
|
161 Check and correct spelling of the word at point (@code{ispell-word}).
|
|
162 @item M-@key{TAB}
|
|
163 Complete the word before point based on the spelling dictionary
|
|
164 (@code{ispell-complete-word}).
|
|
165 @item M-x ispell-buffer
|
|
166 Check and correct spelling of each word in the buffer.
|
|
167 @item M-x ispell-region
|
|
168 Check and correct spelling of each word in the region.
|
|
169 @item M-x ispell-message
|
|
170 Check and correct spelling of each word in a draft mail message,
|
|
171 excluding cited material.
|
|
172 @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET}
|
|
173 Restart the Ispell process, using @var{dict} as the dictionary.
|
|
174 @item M-x ispell-kill-ispell
|
|
175 Kill the Ispell subprocess.
|
|
176 @end table
|
|
177
|
|
178 @cindex Flyspell mode
|
|
179 @findex flyspell-mode
|
|
180 Flyspell mode is a fully-automatic way to check spelling as you edit
|
|
181 in Emacs. It operates by checking words as you change or insert them.
|
|
182 When it finds a word that it does not recognize, it highlights that
|
|
183 word. This does not interfere with your editing, but when you see the
|
|
184 highlighted word, you can move to it and fix it. Type @kbd{M-x
|
|
185 flyspell-mode} to enable or disable this mode in the current buffer.
|
|
186
|
|
187 When Flyspell mode highlights a word as misspelled, you can click on
|
|
188 it with @kbd{Mouse-2} to display a menu of possible corrections and
|
|
189 actions. You can also correct the word by editing it manually in any
|
|
190 way you like.
|
|
191
|
|
192 The other Emacs spell-checking features check or look up words when
|
|
193 you give an explicit command to do so. Checking all or part of the
|
|
194 buffer is useful when you have text that was written outside of this
|
|
195 Emacs session and might contain any number of misspellings.
|
|
196
|
|
197 @kindex M-$
|
|
198 @findex ispell-word
|
|
199 To check the spelling of the word around or next to point, and
|
|
200 optionally correct it as well, use the command @kbd{M-$}
|
|
201 (@code{ispell-word}). If the word is not correct, the command offers
|
|
202 you various alternatives for what to do about it.
|
|
203
|
|
204 @findex ispell-buffer
|
|
205 @findex ispell-region
|
|
206 To check the entire current buffer, use @kbd{M-x ispell-buffer}. Use
|
|
207 @kbd{M-x ispell-region} to check just the current region. To check
|
|
208 spelling in an email message you are writing, use @kbd{M-x
|
|
209 ispell-message}; that checks the whole buffer, but does not check
|
|
210 material that is indented or appears to be cited from other messages.
|
|
211
|
|
212 Each time these commands encounter an incorrect word, they ask you
|
|
213 what to do. They display a list of alternatives, usually including
|
|
214 several ``near-misses''---words that are close to the word being
|
|
215 checked. Then you must type a character. Here are the valid responses:
|
|
216
|
|
217 @table @kbd
|
|
218 @item @key{SPC}
|
|
219 Skip this word---continue to consider it incorrect, but don't change it
|
|
220 here.
|
|
221
|
|
222 @item r @var{new} @key{RET}
|
|
223 Replace the word (just this time) with @var{new}.
|
|
224
|
|
225 @item R @var{new} @key{RET}
|
|
226 Replace the word with @var{new}, and do a @code{query-replace} so you
|
|
227 can replace it elsewhere in the buffer if you wish.
|
|
228
|
|
229 @item @var{digit}
|
|
230 Replace the word (just this time) with one of the displayed
|
|
231 near-misses. Each near-miss is listed with a digit; type that digit to
|
|
232 select it.
|
|
233
|
|
234 @item a
|
|
235 Accept the incorrect word---treat it as correct, but only in this
|
|
236 editing session.
|
|
237
|
|
238 @item A
|
|
239 Accept the incorrect word---treat it as correct, but only in this
|
|
240 editing session and for this buffer.
|
|
241
|
|
242 @item i
|
|
243 Insert this word in your private dictionary file so that Ispell will
|
|
244 consider it correct it from now on, even in future sessions.
|
|
245
|
|
246 @item u
|
|
247 Insert the lower-case version of this word in your private dictionary
|
|
248 file.
|
|
249
|
|
250 @item m
|
|
251 Like @kbd{i}, but you can also specify dictionary completion
|
|
252 information.
|
|
253
|
|
254 @item l @var{word} @key{RET}
|
|
255 Look in the dictionary for words that match @var{word}. These words
|
|
256 become the new list of ``near-misses''; you can select one of them to
|
|
257 replace with by typing a digit. You can use @samp{*} in @var{word} as a
|
|
258 wildcard.
|
|
259
|
|
260 @item C-g
|
|
261 Quit interactive spell checking. You can restart it again afterward
|
|
262 with @kbd{C-u M-$}.
|
|
263
|
|
264 @item X
|
|
265 Same as @kbd{C-g}.
|
|
266
|
|
267 @item x
|
|
268 Quit interactive spell checking and move point back to where it was
|
|
269 when you started spell checking.
|
|
270
|
|
271 @item q
|
|
272 Quit interactive spell checking and kill the Ispell subprocess.
|
|
273
|
|
274 @item C-l
|
|
275 Refresh the screen.
|
|
276
|
|
277 @item C-z
|
|
278 This key has its normal command meaning (suspend Emacs or iconify this
|
|
279 frame).
|
|
280 @end table
|
|
281
|
|
282 @findex ispell-complete-word
|
|
283 The command @code{ispell-complete-word}, which is bound to the key
|
|
284 @kbd{M-@key{TAB}} in Text mode and related modes, shows a list of
|
|
285 completions based on spelling correction. Insert the beginning of a
|
|
286 word, and then type @kbd{M-@key{TAB}}; the command displays a completion
|
|
287 list window. To choose one of the completions listed, click
|
|
288 @kbd{Mouse-2} on it, or move the cursor there in the completions window
|
|
289 and type @key{RET}. @xref{Text Mode}.
|
|
290
|
|
291 @ignore
|
|
292 @findex reload-ispell
|
|
293 The first time you use any of the spell checking commands, it starts
|
|
294 an Ispell subprocess. The first thing the subprocess does is read your
|
|
295 private dictionary, which defaults to the file @file{~/ispell.words}.
|
|
296 Words that you ``insert'' with the @kbd{i} command are added to that
|
|
297 file, but not right away---only at the end of the interactive
|
|
298 replacement procedure. Use the @kbd{M-x reload-ispell} command to
|
|
299 reload your private dictionary if you edit the file outside of Ispell.
|
|
300 @end ignore
|
|
301
|
|
302 @cindex @code{ispell} program
|
|
303 @findex ispell-kill-ispell
|
|
304 Once started, the Ispell subprocess continues to run (waiting for
|
|
305 something to do), so that subsequent spell checking commands complete
|
|
306 more quickly. If you want to get rid of the Ispell process, use
|
|
307 @kbd{M-x ispell-kill-ispell}. This is not usually necessary, since the
|
|
308 process uses no time except when you do spelling correction.
|
|
309
|
|
310 @vindex ispell-dictionary
|
|
311 Ispell uses two dictionaries: the standard dictionary and your private
|
|
312 dictionary. The variable @code{ispell-dictionary} specifies the file
|
|
313 name of the standard dictionary to use. A value of @code{nil} says to
|
|
314 use the default dictionary. The command @kbd{M-x
|
|
315 ispell-change-dictionary} sets this variable and then restarts the
|
|
316 Ispell subprocess, so that it will use a different dictionary.
|
|
317
|