Type: Esc x flyspell-buffer Enter
Flyspell highlights misspelled words (Mac OS X).
Flyspell highlights misspelled words in red. Words that are repeatedly misspelled are highlighted in yellow. Note that it doesn't highlight the proper names we inserted in the dictionary earlier using Ispell; Flyspell checks to see whether words are in your personal dictionary before highlighting them as errors.
You move to a misspelled word and press the middle mouse button to display a pop-up menu of possible replacements. (This implies that you have a three-button mouse, and, to be honest, you need one to make Flyspell work properly.) You select a replacement using the mouse.
Move the cursor to crse and press the middle mouse button.
Flyspell displays a pop-up window of alternatives; you choose one with the mouse (Mac OS X).
Choose curse with the mouse.
Emacs inserts the correct replacement (Mac OS X).
Ispell inserts new words in the dictionary. Flyspell takes it a step further, creating word abbreviations for words that you misspell. In essence, a word abbreviation tells Emacs, in this case, that wrd is just an abbreviation for word, and that therefore Emacs should replace it automatically. If you turn on word abbreviation mode, described in the next section, chronic misspellings that Flyspell encounters will be automatically corrected.
How can you tell Flyspell is using word abbreviations? When you exit a session in which you've used Flyspell, you see a prompt that says, Save abbrevs in ~/.abbrev_defs (y or n)
. This automatic correction won't occur without turning on word abbreviation mode, whether in your startup or manually. Read the section on this topic in this chapter for more details.
What do you do if you encounter a word that's spelled correctly but that Flyspell doesn't recognize? You could insert it in your Ispell dictionary if it's a word you use frequently. The Save word option on the Flyspell pop-up menu handles this. For a temporary fix, the options Accept buffer and Accept session tell Flyspell to accept a word for the current buffer or for all buffers in the current Emacs session automatically. Of course, if it's a word you use frequently, you may want to insert it in the Ispell dictionary to keep Flyspell from flagging it each time.
To enter flyspell mode automatically, add this line to your .emacs file:
(setq-default flyspell-mode t)
Table 3-6 summarizes the Ispell and Flyspell commands.
Table 3-6. Spell-checking commands
Keystrokes | Command name | Action |
---|---|---|
M-$ Tools → Spell Checking → Spell-Check Word | ispell-word | Check the word the cursor is on or the word following the cursor. |
(none)Tools → Spell Checking → Spell-Check Region | ispell-region | Check spelling of the region. |
(none)Tools → Spell Checking → Spell-Check Buffer | ispell-buffer | Check spelling of the buffer. |
(none)Tools → Spell Checking → Spell-Check Message | ispell-message | Check spelling of the body of a mail message. |
(none)Tools → Spell Checking → Spell-Check Comments | ispell-comments-and-strings | Check spelling of comments and strings in a program. |
C-u M-$ Tools → Spell Checking → Continue Spell-Checking | ispell-continue | Resume Ispell; it works only if stopped Ispell with C-g. |
(none) | ispell-kill-ispell | Kill the Ispell process, which continues to run in the background after it is invoked. |
M-Tab Tools → Spell Checking → Complete Word | ispell-complete-word | In text mode, list possible completions for the current word. |
(none)Tools → Spell Checking → Automatic Spell-Checking (Flyspell) | flyspell-mode | Enter the Flyspell minor mode, in which incorrectly spelled words are highlighted. |
(none) | flyspell-buffer | Spell-check the current buffer, underlining all misspelled words. Use middle mouse button to correct. |
3.4 Word Abbreviations
Word abbreviation mode and dynamic abbreviations are two features that lazy typists will love. The authors proudly include themselves in that category, so you'll be in good company if you choose to explore these features. Dynamic abbreviations are less complex, so we'll discuss them first.
3.4.1 Dynamic Abbreviations
Let's say that you are a scientist writing a paper on invertebrates. You're likely to have many long technical words in your paper, and if you're like us, you get tired of typing long words.
Dynamic abbreviations come to the rescue. After you've typed a long word once, you can simply type a few letters and give the command M-/ (for dabbrev-expand). Emacs inserts the nearest word that starts with that string.