Spell checking with ispell

(was "Sppel Chking wth ispell")

What is "ispell"?

Many months ago -- in fact, the first issue of this Newsletter, in July 1995 -- I gave a passing mention to a new feature in Lynx, the ispell spell checker. I don't think that I gave this function justice in less than two lines, so here goes:

ispell is a spell checker, much like the feature that is probably included in your favourite word-processor. You may have noticed the CTRL+T spell check feature in Pine; however, I personally don't like Pine's built-in spell checker. In fact, I detest it, and I know that I'm not alone. So come, rise, ye haters of the Pine spell checker, and find ye something better... ye. Enter ispell! There are two different ways of running ispell.

The first, and most common, is used while you're composing a message in Pine. This is a very neat little command called ^_ , one of those nifty Pine commands that's designed to force you to press as many keys as possible. The keystroke, in simpler terms, is CTRL+SHIFT+UNDERSCORE on most keyboards.

The second way of invoking ispell is used from your personal file browser [go files]. Move the highlight down to the file that you want to spell check, and press the f key for the full files menu. "Spell check" is usually about option #11.

Once that you have entered ispell, the spell checker will proceed to verify every word in the document against its dictionaries. It's important to understand that ispell uses two dictionaries, system-wide and private. Every word is checked against the system dictionary and your private dictionary if necessary. If a word is not found in either dictionary, ispell will look through the system dictionary and display the closest matches on the screen. For example, if you had accidentally typed the word "Chaptr" in your document, ispell would notice that it was not in its dictionaries. It would go through its (mis)spelling rule-book, and decide that "chaptr" is pretty close to the known word "chapter". Thus, "chapter" would be displayed on the screen as a possibility of what you really meant. Just be careful with the spell checker: It can't detect mis-usages of words such as "great" and "grate", and many common words are not present in its default system dictionary.

How do I use ispell?

If your spelling is completely acceptable to ispell, you won't even get a chance to interact with the program. However, it's a pretty safe bet that either you've botched a word up somewhere or ispell doesn't have your favourite spelling of "supercalifragilisticexpialidocious" in its dictionaries. In both cases, you'll be presented with ispell's user interface.

ispell's interface is divided into three parts. In the top two-thirds of the screen, possible corrections for the mis-spelling are displayed, e.g. "0: chapter". Near the bottom of the screen, ispell displays the word in question, e.g. "chaptr". Finally, below "chaptr" one would find a short one-line menu. This menu is pretty useless to you your first session in ispell, but after a while you'll become proficient with it.

This list of commands is available in shorter form in ispell's internal help facility (press the ? key while in ispell). Note that, unlike many UNIX programs (such as the tin newsreader), case doesn't matter. In other words, ispell doesn't care whether you press R or SHIFT+R.

Accept the word this time only. Future occurrences of the word in the current document will bring up the same menu.
Accept the word for the rest of this session. Future occurrences of the word in the current document will be ignored.
Accept the word, and place it in your private dictionary. (Every CCN user may have his/her own private dictionary.) From now on, ispell will consider the spelling in question to be correct. A good thing to add to your private dictionary would be your name, as most names are not in the dictionary.
As above, but with this command, case matters -- e.g. "michael", "Michael" and "mIchAEl" would be considered different words in the dictionary. This is a useful option if you frequently forget to capitalize a proper noun, e.g. you write "chebucto" instead of "Chebucto".
where n is a number, e.g. 0. This command is used to replace a word with a suggested correction. For example, to replace "chaptr" with "chapter", you would press 0, as "chapter" is the zeroth (first!) suggestion on the screen.
Replace the word with a different word entirely. This option is useful when ispell can't suggest any corrections for a mis-spelled word. When you press R, ispell will ask you to enter the new replacement.
As always, this command redraws the screen.
Quit ispell, but save changes to the file.
Quit ispell without saving changes.
Look up a word in the system-wide dictionary. If you want, you can use the wildcard * (asterix) to represent any string. As an example, looking up "cha*r" would display a slew of words including chair, chancellor, char and chauffeur.

My gripes with ispell

But alas, ispell is not perfect. For one thing, it's not as good at coming up with suggestions as most commercial spell checkers. Also, its interface is a little spartan, and could probably use, I don't know, an ASCII picture of a horse or something. Finally, there is no word count feature that I've been able to find.

Strangely enough, the word "ispell" is not in ispell's dictionary. |-)


Chebucto Connections TIPS FOR POWER USERS
is edited by Michael Smith
who is happy to receive Questions, Comments or Suggestions.
If your browser does not support mail, write to Michael later at aa529@ccn·cs·dal·ca.

Last Month: March 1996 Next Month: May 1996