ISPELL: Spelling Checker

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,

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


White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState