<html lang="en"> <head> <title>Using Aspell as a Replacement for Ispell - GNU Aspell 0.60.6.1</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="description" content="Aspell 0.60.6.1 spell checker user's manual."> <meta name="generator" content="makeinfo 4.8"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Basic-Usage.html#Basic-Usage" title="Basic Usage"> <link rel="prev" href="Spellchecking-Individual-Files.html#Spellchecking-Individual-Files" title="Spellchecking Individual Files"> <link rel="next" href="Using-Aspell-with-other-Applications.html#Using-Aspell-with-other-Applications" title="Using Aspell with other Applications"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This is the user's manual for Aspell GNU Aspell is a spell checker designed to eventually replace Ispell. It can either be used as a library or as an independent spell checker. Copyright (C) 2000--2011 Kevin Atkinson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <p> <a name="Using-Aspell-as-a-Replacement-for-Ispell"></a> Next: <a rel="next" accesskey="n" href="Using-Aspell-with-other-Applications.html#Using-Aspell-with-other-Applications">Using Aspell with other Applications</a>, Previous: <a rel="previous" accesskey="p" href="Spellchecking-Individual-Files.html#Spellchecking-Individual-Files">Spellchecking Individual Files</a>, Up: <a rel="up" accesskey="u" href="Basic-Usage.html#Basic-Usage">Basic Usage</a> <hr> </div> <h3 class="section">3.2 Using Aspell as a Replacement for Ispell</h3> <p>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. <h4 class="subsection">3.2.1 As a Drop In Replacement</h4> <p>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 <samp><span class="command">ispell</span></samp> command and expect the original file to be overwritten with the corrected version. <p>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. <p>Otherwise, the recommended way to use Aspell as a replacement for Ispell is to change the <samp><span class="command">ispell</span></samp> command from within the program being used. If the program uses <samp><span class="command">ispell</span></samp> in pipe mode simply change <samp><span class="command">ispell</span></samp> to <samp><span class="command">aspell</span></samp>. If the program calls the <samp><span class="command">ispell</span></samp> command to check the file, then change <samp><span class="command">ispell</span></samp> with <samp><span class="command">aspell check</span></samp>. <p>If that is impossible then the <samp><span class="command">run-with-aspell</span></samp> script can be used. This script modifies the patch so that programs see the Ispell compatibility script instead of the actual true <samp><span class="command">ispell</span></samp> command. The format of the script is: <pre class="example"> run-with-aspell <var>command</var> </pre> <p class="noindent">where <var>command</var> is the name of the program with any optional arguments. <p>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. <p><a name="Differences-From-Ispell"></a> <h4 class="subsection">3.2.2 Differences From Ispell</h4> <p>Nevertheless, Aspell is not Ispell, nor is it meant to completely emulate the behavior of Ispell. The <samp><span class="command">aspell</span></samp> command is not identical to the <samp><span class="command">ispell</span></samp> command when not used in “pipe” mode. If an application expects the <samp><span class="command">ispell</span></samp> command, then the Ispell compatibility script should be used instead. <h5 class="subsubsection">3.2.2.1 Functionality of the Ispell Compatibility Script</h5> <p>The Ispell compatibility script provides the following Ispell functionally. <ul> <li>The ability to check a file when called without any mode parameters. <li>The pipe or -a mode. <li>The list or -l mode. <li>The version or -v mode. A single line is returned which, while not being identical to the line Ispell returns, is sufficient to fool most programs. <li>The munch or -c mode. <li>The expand or -e mode. <li>The ability to dump the affix file when called with '-D'. However the format of the affix file is different. Furthermore, not all languages have an affix file. </ul> <p>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 <code>&Include_File&</code> command is recognized. <h5 class="subsubsection">3.2.2.2 Recognized Options</h5> <p>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. <h5 class="subsubsection">3.2.2.3 Check Mode Compatibility</h5> <p>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 <samp><span class="option">keymapping</span></samp> option. To use the Ispell keymappings set the <samp><span class="option">kepmapping</span></samp> option to <code>ispell</code>. This can be done on the command line by adding using the command: <pre class="example"> aspell check --keymapping=ispell ... <br>or with the Ispell compatibility script<br> ispell --keymapping=ispell ... </pre> <p>The Ispell keymapping can always be used when the Ispell compatibly script is called by uncommenting the indicated line in the <samp><span class="command">ispell</span></samp> script. <h5 class="subsubsection">3.2.2.4 Pipe Mode Compatibility</h5> <p>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. <h5 class="subsubsection">3.2.2.5 Other Differences</h5> <p>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. <p>The naming and format of the personal dictionary is also different. However, Ispell personal dictionaries can be imported using the <samp><span class="command">aspell-import</span></samp> script. See <a href="Using-aspell_002dimport.html#Using-aspell_002dimport">Using aspell-import</a>. 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 <a href="Format-of-the-Personal-Dictionary.html#Format-of-the-Personal-Dictionary">Format of the Personal Dictionary</a>. <h5 class="subsubsection">3.2.2.6 Missing Functionally</h5> <p>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. <p>However, Aspell can handle UTF-8 documents far better than Ispell can. </body></html>