aspell: Using Aspell as a Replacement for Ispell

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