Книга: Learning GNU Emacs, 3rd Edition

3.3.4 Spellchecking on the Fly with Flyspell

3.3.4 Spellchecking on the Fly with Flyspell

Flyspell highlights misspelled words as you type. You can also use it to check existing text. The commands for doing this are different.

To check text as you type, enter Flyspell mode by typing M-x flyspell-mode Enter. Fly appears on the mode line. If you set up Emacs to enter Flyspell mode automatically, your text is always spell-checked "on the fly." An alternative to Flyspell mode is Flyspell prog mode. In this mode, designed for programmers, Emacs highlights misspellings only in comments or strings. To enter it, type M-x flyspell-prog-mode Enter.

To check existing text, you run M-x flyspell-buffer Enter. This command is like ispell-buffer; it spell-checks the entire buffer. Flyspell's interface is different; it underlines all the words it suspects are misspelled and gives you a pop-up menu of alternatives.

The best way to check out Flyspell mode is to turn it on and type some misspelled text to see it in action. No matter whether you enter Flyspell mode or run flyspell-buffer, you correct errors in the same way. We'll demonstrate flyspell-buffer on our misspelled odyssey file. Because it's an existing file (not a new file we're typing), we need to issue the flyspell-buffer command.

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.

Оглавление книги


Генерация: 1.276. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз