LJ Archive

ISPELL: Spelling Checker

Marjorie Richardson

Issue #46, February 1998

Not a perfect speller? This is the command for you.

As a former Technical Editor, I know how easy it is to miss incorrect spelling when proof-reading, especially if the word “looks” right, e.g., compatability (sic). For this reason, a good spelling checker is a must. The command ispell does a good job and has special features to help it do even better. The Man page for ispell is very comprehensive, so I won't go into all its options—only my favorites.

When ispell has been invoked and it finds a misspelled word, options are displayed in one line across the bottom of the screen:

[SP] <number> R)epel A)ccept I)nsert L)ookup
 U)ncap Q)uit e(X)it or ? for help

All you have to do is press the space bar (accept this time only) or A (accept for rest of document) to accept the spelling as is, press I to insert the word in the dictionary, or press the appropriate number or R to replace it. The main thing to watch out for is the right time to use R. When a misspelled word is found and the spelling choices are offered, the tendency is to press R for replace and enter the number of the correct choice—doing this results in the number replacing your word. Instead, enter the number of your choice immediately, and since replace is the default, the correct spelling will replace the incorrect in the text. Use R only when a correct spelling is not offered by ispell.

Most of SSC's reference cards and command summaries use troff text formatting; other manuals use TeX. Use the option -n with troff text or -t with TeX or LaTeX, and ispell will ignore formatting commands, thereby returning fewer “misspelled” words for you to accept. While an option is not available to designate a Quark file, you can always insert the QuarkXPress formatting commands into your personal dictionary the first time they come up and not be hassled again.

In fact, the personal dictionary is probably the neatest feature of all. The very first time you select I to insert a word it doesn't recognize, ispell sets up a personal dictionary named ispell_english in your home directory. After that, any word you select will be added to this dictionary, and you will never be told it is misspelled again. This feature is particularly handy for proper names, buzz words and abbreviations unique to your business. Hashed dictionaries for other languages (that have been installed) can be specified using -d. In addition, you can set up special dictionaries for particular projects. For example, when I was editing the Java Reference Cards, I set up a special dictionary named ispell_java just for Java terms in my work directory. Afterwards, whenever I ran ispell, I specified the command line as:

ispell -n -p ./ispell_java java.troff

As a result, ispell knew class names like getFontList were spelled correctly, and that getFontlist was not. By the way, don't forget that the command line specification must include the directory of the dictionary (./ in the above example); otherwise ispell will look for it in your home directory.

Another handy feature to remember is how to check a single word instead of a complete file by using the -a option. For example, if you specify:

echo compatability | ispell -a

ispell will return the one line message:

&compatability 3 0: comparability, compatibility,
computability

This message tells you “compatability” is misspelled, and gives you a list of 3 best guesses in alphabetical order. If you prefer not to have the list sorted alphabetically, use the -S option, and it will be sorted by best guess.

All in all, ispell is an effective and easy-to-use all-purpose spell checker.

Marjorie Richardson is Managing Editor of Linux Journal and the Editor of Linux Gazette. She had been a programmer in the oil industry for 20 years before coming to SSC. She likes to quilt, read science fiction, watch action movies and musicals, go to the opera and camp with her husband, Riley. She can be reached via e-mail at info@linuxjournal.com.

LJ Archive