Mercurial > emacs
annotate man/fixit.texi @ 42811:cf0c0ef57504
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Thu, 17 Jan 2002 19:29:24 +0000 |
| parents | 5c282c7df1cf |
| children | 58de4f15ebf6 |
| rev | line source |
|---|---|
| 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. | |
|
36314
dc1d222b639d
(Fixit): Fix "for for". From "Nelson H. F. Beebe" <beebe@math.utah.edu>.
Eli Zaretskii <eliz@gnu.org>
parents:
36263
diff
changeset
|
19 @xref{Undo}, for more information. |
| 25829 | 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 | |
| 38954 | 84 fast, you must move the cursor back between the two transposed |
| 85 characters before you type @kbd{C-t}. If you transposed a space with | |
| 86 the last character of the word before it, the word motion commands are | |
| 87 a good way of getting there. Otherwise, a reverse search (@kbd{C-r}) | |
| 88 is often the best way. @xref{Search}. | |
| 25829 | 89 |
| 90 @kindex C-x C-t | |
| 91 @findex transpose-lines | |
| 92 @kindex M-t | |
| 93 @findex transpose-words | |
|
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
31059
diff
changeset
|
94 @c Don't index C-M-t and transpose-sexps here, they are indexed in |
|
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
31059
diff
changeset
|
95 @c programs.texi, in the "List Commands" node. |
|
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
31059
diff
changeset
|
96 @c @kindex C-M-t |
|
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
31059
diff
changeset
|
97 @c @findex transpose-sexps |
| 37120 | 98 @kbd{M-t} transposes the word before point with the word after point |
| 99 (@code{transpose-words}). It moves point forward over a word, | |
| 100 dragging the word preceding or containing point forward as well. The | |
| 101 punctuation characters between the words do not move. For example, | |
| 102 @w{@samp{FOO, BAR}} transposes into @w{@samp{BAR, FOO}} rather than | |
| 103 @samp{@w{BAR FOO,}}. | |
| 25829 | 104 |
|
38204
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
105 @kbd{C-M-t} (@code{transpose-sexps}) is a similar command for |
|
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
106 transposing two expressions (@pxref{Expressions}), and @kbd{C-x C-t} |
|
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
107 (@code{transpose-lines}) exchanges lines. They work like @kbd{M-t} |
| 38745 | 108 except as regards what units of text they transpose. |
| 25829 | 109 |
| 110 A numeric argument to a transpose command serves as a repeat count: it | |
|
38204
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
111 tells the transpose command to move the character (word, expression, line) |
| 25829 | 112 before or containing point across several other characters (words, |
|
38204
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
113 expressions, lines). For example, @kbd{C-u 3 C-t} moves the character before |
| 25829 | 114 point forward across three other characters. It would change |
| 115 @samp{f@point{}oobar} into @samp{oobf@point{}ar}. This is equivalent to | |
| 116 repeating @kbd{C-t} three times. @kbd{C-u - 4 M-t} moves the word | |
| 117 before point backward across four words. @kbd{C-u - C-M-t} would cancel | |
| 118 the effect of plain @kbd{C-M-t}.@refill | |
| 119 | |
| 120 A numeric argument of zero is assigned a special meaning (because | |
| 121 otherwise a command with a repeat count of zero would do nothing): to | |
|
38204
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
122 transpose the character (word, expression, line) ending after point |
|
baa9ae31d281
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
38024
diff
changeset
|
123 with the one ending after the mark. |
| 25829 | 124 |
| 125 @node Fixing Case | |
| 126 @section Case Conversion | |
| 127 | |
| 128 @table @kbd | |
| 129 @item M-- M-l | |
| 130 Convert last word to lower case. Note @kbd{Meta--} is Meta-minus. | |
| 131 @item M-- M-u | |
| 132 Convert last word to all upper case. | |
| 133 @item M-- M-c | |
| 134 Convert last word to lower case with capital initial. | |
| 135 @end table | |
| 136 | |
| 137 @kindex M-@t{-} M-l | |
| 138 @kindex M-@t{-} M-u | |
| 139 @kindex M-@t{-} M-c | |
| 140 A very common error is to type words in the wrong case. Because of this, | |
| 141 the word case-conversion commands @kbd{M-l}, @kbd{M-u} and @kbd{M-c} have a | |
| 142 special feature when used with a negative argument: they do not move the | |
| 143 cursor. As soon as you see you have mistyped the last word, you can simply | |
| 144 case-convert it and go on typing. @xref{Case}.@refill | |
| 145 | |
| 146 @node Spelling | |
| 147 @section Checking and Correcting Spelling | |
| 148 @cindex spelling, checking and correcting | |
| 149 @cindex checking spelling | |
| 150 @cindex correcting spelling | |
| 151 | |
| 152 This section describes the commands to check the spelling of a single | |
| 153 word or of a portion of a buffer. These commands work with the spelling | |
| 154 checker program Ispell, which is not part of Emacs. | |
| 155 @ifinfo | |
| 156 @xref{Top, Ispell, Overview ispell, ispell.info, The Ispell Manual}. | |
| 157 @end ifinfo | |
| 158 | |
| 159 @table @kbd | |
| 160 @item M-x flyspell-mode | |
| 161 Enable Flyspell mode, which highlights all misspelled words. | |
| 162 @item M-$ | |
| 163 Check and correct spelling of the word at point (@code{ispell-word}). | |
| 164 @item M-@key{TAB} | |
| 165 Complete the word before point based on the spelling dictionary | |
| 166 (@code{ispell-complete-word}). | |
|
31059
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
167 @item M-x ispell |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
168 Spell-check the active region or the current buffer. |
| 25829 | 169 @item M-x ispell-buffer |
| 170 Check and correct spelling of each word in the buffer. | |
| 171 @item M-x ispell-region | |
| 172 Check and correct spelling of each word in the region. | |
| 173 @item M-x ispell-message | |
| 174 Check and correct spelling of each word in a draft mail message, | |
| 175 excluding cited material. | |
| 176 @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET} | |
| 177 Restart the Ispell process, using @var{dict} as the dictionary. | |
| 178 @item M-x ispell-kill-ispell | |
| 179 Kill the Ispell subprocess. | |
| 180 @end table | |
| 181 | |
| 182 @cindex Flyspell mode | |
| 183 @findex flyspell-mode | |
| 184 Flyspell mode is a fully-automatic way to check spelling as you edit | |
| 185 in Emacs. It operates by checking words as you change or insert them. | |
| 186 When it finds a word that it does not recognize, it highlights that | |
| 187 word. This does not interfere with your editing, but when you see the | |
| 188 highlighted word, you can move to it and fix it. Type @kbd{M-x | |
| 189 flyspell-mode} to enable or disable this mode in the current buffer. | |
| 190 | |
| 191 When Flyspell mode highlights a word as misspelled, you can click on | |
| 192 it with @kbd{Mouse-2} to display a menu of possible corrections and | |
| 193 actions. You can also correct the word by editing it manually in any | |
| 194 way you like. | |
| 195 | |
| 196 The other Emacs spell-checking features check or look up words when | |
| 197 you give an explicit command to do so. Checking all or part of the | |
| 198 buffer is useful when you have text that was written outside of this | |
| 199 Emacs session and might contain any number of misspellings. | |
| 200 | |
| 201 @kindex M-$ | |
| 202 @findex ispell-word | |
| 203 To check the spelling of the word around or next to point, and | |
| 204 optionally correct it as well, use the command @kbd{M-$} | |
| 205 (@code{ispell-word}). If the word is not correct, the command offers | |
| 206 you various alternatives for what to do about it. | |
| 207 | |
| 208 @findex ispell-buffer | |
| 209 @findex ispell-region | |
| 210 To check the entire current buffer, use @kbd{M-x ispell-buffer}. Use | |
| 211 @kbd{M-x ispell-region} to check just the current region. To check | |
| 212 spelling in an email message you are writing, use @kbd{M-x | |
| 38954 | 213 ispell-message}; that command checks the whole buffer, except for |
| 25829 | 214 material that is indented or appears to be cited from other messages. |
| 215 | |
|
31059
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
216 @findex ispell |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
217 @cindex spell-checking the active region |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
218 The @kbd{M-x ispell} command spell-checks the active region if the |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
219 Transient Mark mode is on (@pxref{Transient Mark}), otherwise it |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
220 spell-checks the current buffer. |
|
b65102a3c19d
Document the new operation of the `ispell' command.
Eli Zaretskii <eliz@gnu.org>
parents:
25829
diff
changeset
|
221 |
| 25829 | 222 Each time these commands encounter an incorrect word, they ask you |
| 223 what to do. They display a list of alternatives, usually including | |
| 224 several ``near-misses''---words that are close to the word being | |
| 38954 | 225 checked. Then you must type a single-character response. Here are |
| 226 the valid responses: | |
| 25829 | 227 |
| 228 @table @kbd | |
| 229 @item @key{SPC} | |
| 230 Skip this word---continue to consider it incorrect, but don't change it | |
| 231 here. | |
| 232 | |
| 233 @item r @var{new} @key{RET} | |
| 234 Replace the word (just this time) with @var{new}. | |
| 235 | |
| 236 @item R @var{new} @key{RET} | |
| 237 Replace the word with @var{new}, and do a @code{query-replace} so you | |
| 238 can replace it elsewhere in the buffer if you wish. | |
| 239 | |
| 240 @item @var{digit} | |
| 241 Replace the word (just this time) with one of the displayed | |
| 242 near-misses. Each near-miss is listed with a digit; type that digit to | |
| 243 select it. | |
| 244 | |
| 245 @item a | |
| 246 Accept the incorrect word---treat it as correct, but only in this | |
| 247 editing session. | |
| 248 | |
| 249 @item A | |
| 250 Accept the incorrect word---treat it as correct, but only in this | |
| 251 editing session and for this buffer. | |
| 252 | |
| 253 @item i | |
| 254 Insert this word in your private dictionary file so that Ispell will | |
| 38954 | 255 consider it correct from now on, even in future sessions. |
| 25829 | 256 |
| 257 @item u | |
|
38024
939c227505cd
Advise TeX about hyphenation of "dictionary".
Eli Zaretskii <eliz@gnu.org>
parents:
37120
diff
changeset
|
258 Insert the lower-case version of this word in your private dic@-tion@-ary |
| 25829 | 259 file. |
| 260 | |
| 261 @item m | |
| 262 Like @kbd{i}, but you can also specify dictionary completion | |
| 263 information. | |
| 264 | |
| 265 @item l @var{word} @key{RET} | |
| 266 Look in the dictionary for words that match @var{word}. These words | |
| 38954 | 267 become the new list of ``near-misses''; you can select one of them as |
| 268 the replacement by typing a digit. You can use @samp{*} in @var{word} as a | |
| 25829 | 269 wildcard. |
| 270 | |
| 271 @item C-g | |
| 272 Quit interactive spell checking. You can restart it again afterward | |
| 273 with @kbd{C-u M-$}. | |
| 274 | |
| 275 @item X | |
| 276 Same as @kbd{C-g}. | |
| 277 | |
| 278 @item x | |
| 279 Quit interactive spell checking and move point back to where it was | |
| 280 when you started spell checking. | |
| 281 | |
| 282 @item q | |
| 283 Quit interactive spell checking and kill the Ispell subprocess. | |
| 284 | |
| 285 @item C-l | |
| 286 Refresh the screen. | |
| 287 | |
| 288 @item C-z | |
| 289 This key has its normal command meaning (suspend Emacs or iconify this | |
| 290 frame). | |
| 291 @end table | |
| 292 | |
| 293 @findex ispell-complete-word | |
| 294 The command @code{ispell-complete-word}, which is bound to the key | |
| 295 @kbd{M-@key{TAB}} in Text mode and related modes, shows a list of | |
| 296 completions based on spelling correction. Insert the beginning of a | |
| 297 word, and then type @kbd{M-@key{TAB}}; the command displays a completion | |
| 298 list window. To choose one of the completions listed, click | |
| 299 @kbd{Mouse-2} on it, or move the cursor there in the completions window | |
| 300 and type @key{RET}. @xref{Text Mode}. | |
| 301 | |
| 302 @ignore | |
| 303 @findex reload-ispell | |
| 304 The first time you use any of the spell checking commands, it starts | |
| 305 an Ispell subprocess. The first thing the subprocess does is read your | |
| 306 private dictionary, which defaults to the file @file{~/ispell.words}. | |
| 307 Words that you ``insert'' with the @kbd{i} command are added to that | |
| 308 file, but not right away---only at the end of the interactive | |
| 309 replacement procedure. Use the @kbd{M-x reload-ispell} command to | |
| 310 reload your private dictionary if you edit the file outside of Ispell. | |
| 311 @end ignore | |
| 312 | |
| 313 @cindex @code{ispell} program | |
| 314 @findex ispell-kill-ispell | |
| 315 Once started, the Ispell subprocess continues to run (waiting for | |
| 316 something to do), so that subsequent spell checking commands complete | |
| 317 more quickly. If you want to get rid of the Ispell process, use | |
| 318 @kbd{M-x ispell-kill-ispell}. This is not usually necessary, since the | |
| 319 process uses no time except when you do spelling correction. | |
| 320 | |
| 321 @vindex ispell-dictionary | |
| 322 Ispell uses two dictionaries: the standard dictionary and your private | |
| 323 dictionary. The variable @code{ispell-dictionary} specifies the file | |
| 324 name of the standard dictionary to use. A value of @code{nil} says to | |
| 325 use the default dictionary. The command @kbd{M-x | |
| 326 ispell-change-dictionary} sets this variable and then restarts the | |
| 327 Ispell subprocess, so that it will use a different dictionary. | |
| 328 |
