As of GNU Aspell 0.60.1 Aspell should be able to completely replace Ispell for most applications. The Ispell compatibility script should work for most applications which expect Ispell. However there are some differences which you should be aware of.
Aspell can be used as a drop in replacement for Ispell for programs
that use Ispell through a pipe such as Emacs and LyX. It can also be
used with programs that simply call the
ispell command and
expect the original file to be overwritten with the corrected version.
If you do not have Ispell installed on your system and have installed the Ispell compatibility script then you should not need to do anything as most applications that expect Ispell will work as expected with Aspell via the Ispell compatibility script.
Otherwise, the recommended way to use Aspell as a replacement for
Ispell is to change the
ispell command from within the
program being used. If the program uses
ispell in pipe mode
aspell. If the program
ispell command to check the file, then change
If that is impossible then the
run-with-aspell script can be
used. This script modifies the patch so that programs see the Ispell
compatibility script instead of the actual true
command. The format of the script is:
where command is the name of the program with any optional arguments.
The old method of mapping Ispell to Aspell is discouraged because it can create compatibility problems with programs that actually require Ispell such as Ispell’s own scripts.
Nevertheless, Aspell is not Ispell, nor is it meant to completely
emulate the behavior of Ispell. The
aspell command is not
identical to the
ispell command when not used in “pipe”
mode. If an application expects the
ispell command, then
the Ispell compatibility script should be used instead.
The Ispell compatibility script provides the following Ispell functionally.
However the Ispell script is currently unable to emulate
the ’-A’ pipe mode. This is different from the normal pipe mode in
that the special
&Include_File& command is recognized.
Aspell, and thus the Ispell compatibility script, recognizes most of the options that Ispell uses except for the ’-S’, ’-w’ and ’-T’ options. The Aspell command will simply ignore these options if it sees them.
The interface used by Aspell when checking individual files is
slightly different than Ispell’s. In particular the default
keymappings are not the same as the ones Ispell uses. However Aspell
supports using the Ispell keymappings via the keymapping
option. To use the Ispell keymappings set the kepmapping
ispell. This can be done on the command line by
adding using the command:
aspell check --keymapping=ispell …
or with the Ispell compatibility script
ispell --keymapping=ispell …
The Ispell keymapping can always be used when the Ispell compatibly
script is called by uncommenting the indicated line in the
The Aspell pipe mode should be identical to the Ispell pipe mode except if the line starts with a ’$$’ as that will trigger special Aspell only commands or if the line starts with a ’~’ which is ignored by Aspell.
The compiled dictionary format is completely different than Ispell’s. Furthermore the format of the language data files’ are different than Ispell’s affix file. However, all known Ispell dictionaries were converted to Aspell format, except for Albanian (sq) as I was unable to find the source word list.
The naming and format of the personal dictionary is also different.
However, Ispell personal dictionaries can be imported using the
aspell-import script. See Using aspell-import. The
Ispell personal dictionary is simply a list of words while the Aspell
one is a list of words with a header line. Thus it is also fairly
easy to convert between the two. See Format of the Personal Dictionary.
The only major area where Ispell is superior to Aspell is in the handling of multi character letters such as old ASCII encoding of accented characters.
However, Aspell can handle UTF-8 documents far better than Ispell can.