@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
-@node Fixit, Files, Search, Top
+@node Fixit, Keyboard Macros, Search, Top
@chapter Commands for Fixing Typos
@cindex typos, fixing
@cindex mistakes, correcting
it, or change your mind while composing text on the fly.
The most fundamental command for correcting erroneous editing is the
-undo command, @kbd{C-x u} or @kbd{C-_}. This command undoes a single
-command (usually), a part of a command (in the case of
-@code{query-replace}), or several consecutive self-inserting characters.
-Consecutive repetitions of @kbd{C-_} or @kbd{C-x u} undo earlier and
-earlier changes, back to the limit of the undo information available.
-@xref{Undo}, for more information.
+undo command, @kbd{C-x u} or @kbd{C-_} or @kbd{C-/}. This command
+undoes a single command (usually), a part of a command (in the case of
+@code{query-replace}), or several consecutive self-inserting
+characters. Consecutive repetitions of the undo command undo earlier
+and earlier changes, back to the limit of the undo information
+available. @xref{Undo}, for more information.
@menu
* Kill Errors:: Commands to kill a batch of recently entered text.
the line with the newline, which would be useless, @kbd{C-t} transposes the
last two characters on the line. So, if you catch your transposition error
right away, you can fix it with just a @kbd{C-t}. If you don't catch it so
-fast, you must move the cursor back to between the two transposed
-characters. If you transposed a space with the last character of the word
-before it, the word motion commands are a good way of getting there.
-Otherwise, a reverse search (@kbd{C-r}) is often the best way.
-@xref{Search}.
-
+fast, you must move the cursor back between the two transposed
+characters before you type @kbd{C-t}. If you transposed a space with
+the last character of the word before it, the word motion commands are
+a good way of getting there. Otherwise, a reverse search (@kbd{C-r})
+is often the best way. @xref{Search}.
@kindex C-x C-t
@findex transpose-lines
word or of a portion of a buffer. These commands work with the spelling
checker program Ispell, which is not part of Emacs.
@ifinfo
-@xref{Top, Ispell, Overview ispell, ispell.info, The Ispell Manual}.
+@xref{Top, Ispell, Overview ispell, ispell, The Ispell Manual}.
@end ifinfo
@table @kbd
@item M-x flyspell-mode
Enable Flyspell mode, which highlights all misspelled words.
+@item M-x flyspell-prog-mode
+Enable Flyspell mode for comments and strings only.
@item M-$
Check and correct spelling of the word at point (@code{ispell-word}).
@item M-@key{TAB}
+@itemx @key{ESC} @key{TAB}
Complete the word before point based on the spelling dictionary
(@code{ispell-complete-word}).
@item M-x ispell
@item M-x ispell-region
Check and correct spelling of each word in the region.
@item M-x ispell-message
-Check and correct spelling of each word in a draft mail message,
+Check and correct spelling of each word in a draft mail message,
excluding cited material.
@item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET}
Restart the Ispell process, using @var{dict} as the dictionary.
actions. You can also correct the word by editing it manually in any
way you like.
+@findex flyspell-prog-mode
+Flyspell Prog mode works just like ordinary Flyspell mode, except that
+it only checks words in comments and string constants. This feature
+is useful for editing programs. Type @kbd{M-x flyspell-prog-mode} to
+enable or disable this mode in the current buffer.
+
The other Emacs spell-checking features check or look up words when
-you give an explicit command to do so. Checking all or part of the
-buffer is useful when you have text that was written outside of this
-Emacs session and might contain any number of misspellings.
+you give an explicit command to do so.
@kindex M-$
@findex ispell-word
- To check the spelling of the word around or next to point, and
+ To check the spelling of the word around or before point, and
optionally correct it as well, use the command @kbd{M-$}
(@code{ispell-word}). If the word is not correct, the command offers
you various alternatives for what to do about it.
To check the entire current buffer, use @kbd{M-x ispell-buffer}. Use
@kbd{M-x ispell-region} to check just the current region. To check
spelling in an email message you are writing, use @kbd{M-x
-ispell-message}; that checks the whole buffer, but does not check
+ispell-message}; that command checks the whole buffer, except for
material that is indented or appears to be cited from other messages.
@findex ispell
Each time these commands encounter an incorrect word, they ask you
what to do. They display a list of alternatives, usually including
several ``near-misses''---words that are close to the word being
-checked. Then you must type a character. Here are the valid responses:
+checked. Then you must type a single-character response. Here are
+the valid responses:
@table @kbd
@item @key{SPC}
here.
@item r @var{new} @key{RET}
-Replace the word (just this time) with @var{new}.
+Replace the word (just this time) with @var{new}. (The replacement
+string will be rescanned for more spelling errors.)
@item R @var{new} @key{RET}
Replace the word with @var{new}, and do a @code{query-replace} so you
-can replace it elsewhere in the buffer if you wish.
+can replace it elsewhere in the buffer if you wish. (The replacements
+will be rescanned for more spelling errors.)
@item @var{digit}
Replace the word (just this time) with one of the displayed
@item i
Insert this word in your private dictionary file so that Ispell will
-consider it correct it from now on, even in future sessions.
+consider it correct from now on, even in future sessions.
@item u
Insert the lower-case version of this word in your private dic@-tion@-ary
@item l @var{word} @key{RET}
Look in the dictionary for words that match @var{word}. These words
-become the new list of ``near-misses''; you can select one of them to
-replace with by typing a digit. You can use @samp{*} in @var{word} as a
+become the new list of ``near-misses''; you can select one of them as
+the replacement by typing a digit. You can use @samp{*} in @var{word} as a
wildcard.
@item C-g
-Quit interactive spell checking. You can restart it again afterward
-with @kbd{C-u M-$}.
+Quit interactive spell checking, leaving point at the word that was
+being checked. You can restart checking again afterward with @kbd{C-u
+M-$}.
@item X
Same as @kbd{C-g}.
@item C-z
This key has its normal command meaning (suspend Emacs or iconify this
frame).
+
+@item ?
+Show the list of options.
@end table
@findex ispell-complete-word
The command @code{ispell-complete-word}, which is bound to the key
@kbd{M-@key{TAB}} in Text mode and related modes, shows a list of
completions based on spelling correction. Insert the beginning of a
-word, and then type @kbd{M-@key{TAB}}; the command displays a completion
-list window. To choose one of the completions listed, click
-@kbd{Mouse-2} on it, or move the cursor there in the completions window
-and type @key{RET}. @xref{Text Mode}.
+word, and then type @kbd{M-@key{TAB}}; the command displays a
+completion list window. (If your window manager intercepts
+@kbd{M-@key{TAB}}, type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.) To
+choose one of the completions listed, click @kbd{Mouse-2} or
+@kbd{Mouse-1} fast on it, or move the cursor there in the completions
+window and type @key{RET}. @xref{Text Mode}.
@ignore
@findex reload-ispell
process uses no time except when you do spelling correction.
@vindex ispell-dictionary
- Ispell uses two dictionaries: the standard dictionary and your private
-dictionary. The variable @code{ispell-dictionary} specifies the file
-name of the standard dictionary to use. A value of @code{nil} says to
-use the default dictionary. The command @kbd{M-x
-ispell-change-dictionary} sets this variable and then restarts the
-Ispell subprocess, so that it will use a different dictionary.
+ Ispell uses two dictionaries together for spell checking: the
+standard dictionary and your private dictionary. The variable
+@code{ispell-dictionary} specifies the file name to use for the
+standard dictionary; a value of @code{nil} selects the default
+dictionary. The command @kbd{M-x ispell-change-dictionary} sets this
+variable and then restarts the Ispell subprocess, so that it will use
+a different standard dictionary.
+
+@vindex ispell-complete-word-dict
+ Ispell uses a separate dictionary for word completion. The variable
+@code{ispell-complete-word-dict} specifies the file name of this
+dictionary. The completion dictionary must be different because it
+cannot use root and affix information. For some languages
+there is a spell checking dictionary but no word completion
+dictionary.
+@ignore
+ arch-tag: 3359a443-96ed-448f-9f05-c8111ba8eac0
+@end ignore