Imported Upstream version 0.60.7
[platform/upstream/aspell.git] / manual / aspell.html / Using-Aspell-as-a-Replacement-for-Ispell.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <!-- This is the user's manual for Aspell
4
5 GNU Aspell is a spell checker designed to eventually replace Ispell.
6 It can either be used as a library or as an independent spell checker.
7
8 Copyright © 2000-2019 Kevin Atkinson.
9
10 Permission is granted to copy, distribute and/or modify this document
11 under the terms of the GNU Free Documentation License, Version 1.1 or
12 any later version published by the Free Software Foundation; with no
13 Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.  A
14 copy of the license is included in the section entitled "GNU Free
15 Documentation License". -->
16 <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
17 <head>
18 <title>GNU Aspell 0.60.7: Using Aspell as a Replacement for Ispell</title>
19
20 <meta name="description" content="Aspell 0.60.7 spell checker user&rsquo;s manual.">
21 <meta name="keywords" content="GNU Aspell 0.60.7: Using Aspell as a Replacement for Ispell">
22 <meta name="resource-type" content="document">
23 <meta name="distribution" content="global">
24 <meta name="Generator" content="makeinfo">
25 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
26 <link href="index.html#Top" rel="start" title="Top">
27 <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
28 <link href="Basic-Usage.html#Basic-Usage" rel="up" title="Basic Usage">
29 <link href="Using-Aspell-with-other-Applications.html#Using-Aspell-with-other-Applications" rel="next" title="Using Aspell with other Applications">
30 <link href="Spellchecking-Individual-Files.html#Spellchecking-Individual-Files" rel="prev" title="Spellchecking Individual Files">
31 <style type="text/css">
32 <!--
33 a.summary-letter {text-decoration: none}
34 blockquote.smallquotation {font-size: smaller}
35 div.display {margin-left: 3.2em}
36 div.example {margin-left: 3.2em}
37 div.indentedblock {margin-left: 3.2em}
38 div.lisp {margin-left: 3.2em}
39 div.smalldisplay {margin-left: 3.2em}
40 div.smallexample {margin-left: 3.2em}
41 div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
42 div.smalllisp {margin-left: 3.2em}
43 kbd {font-style:oblique}
44 pre.display {font-family: inherit}
45 pre.format {font-family: inherit}
46 pre.menu-comment {font-family: serif}
47 pre.menu-preformatted {font-family: serif}
48 pre.smalldisplay {font-family: inherit; font-size: smaller}
49 pre.smallexample {font-size: smaller}
50 pre.smallformat {font-family: inherit; font-size: smaller}
51 pre.smalllisp {font-size: smaller}
52 span.nocodebreak {white-space:nowrap}
53 span.nolinebreak {white-space:nowrap}
54 span.roman {font-family:serif; font-weight:normal}
55 span.sansserif {font-family:sans-serif; font-weight:normal}
56 ul.no-bullet {list-style: none}
57 -->
58 </style>
59
60
61 </head>
62
63 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
64 <a name="Using-Aspell-as-a-Replacement-for-Ispell"></a>
65 <div class="header">
66 <p>
67 Next: <a href="Using-Aspell-with-other-Applications.html#Using-Aspell-with-other-Applications" accesskey="n" rel="next">Using Aspell with other Applications</a>, Previous: <a href="Spellchecking-Individual-Files.html#Spellchecking-Individual-Files" accesskey="p" rel="prev">Spellchecking Individual Files</a>, Up: <a href="Basic-Usage.html#Basic-Usage" accesskey="u" rel="up">Basic Usage</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
68 </div>
69 <hr>
70 <a name="Using-Aspell-as-a-Replacement-for-Ispell-1"></a>
71 <h3 class="section">3.2 Using Aspell as a Replacement for Ispell</h3>
72
73 <p>As of GNU Aspell 0.60.1 Aspell should be able to completely replace
74 Ispell for most applications.  The Ispell compatibility script should
75 work for most applications which expect Ispell.  However there are
76 some differences which you should be aware of.
77 </p>
78 <a name="As-a-Drop-In-Replacement"></a>
79 <h4 class="subsection">3.2.1 As a Drop In Replacement</h4>
80
81 <p>Aspell can be used as a drop in replacement for Ispell for programs
82 that use Ispell through a pipe such as Emacs and LyX.  It can also be
83 used with programs that simply call the <code>ispell</code> command and
84 expect the original file to be overwritten with the corrected version.
85 </p>
86 <p>If you do not have Ispell installed on your system and have installed
87 the Ispell compatibility script then you should not need to do anything
88 as most applications that expect Ispell will work as expected
89 with Aspell via the Ispell compatibility script.
90 </p>
91 <p>Otherwise, the recommended way to use Aspell as a replacement for
92 Ispell is to change the <code>ispell</code> command from within the
93 program being used.  If the program uses <code>ispell</code> in pipe mode
94 simply change <code>ispell</code> to <code>aspell</code>.  If the program
95 calls the <code>ispell</code> command to check the file, then change
96 <code>ispell</code> with <code>aspell check</code>.
97 </p>
98 <p>If that is impossible then the <code>run-with-aspell</code> script can be
99 used.  This script modifies the patch so that programs see the Ispell
100 compatibility script instead of the actual true <code>ispell</code>
101 command.  The format of the script is:
102 </p>
103 <div class="example">
104 <pre class="example">run-with-aspell <var>command</var>
105 </pre></div>
106
107 <p>where <var>command</var> is the name of the program with any optional
108 arguments.
109 </p>
110 <p>The old method of mapping Ispell to Aspell is discouraged because it
111 can create compatibility problems with programs that actually require
112 Ispell such as Ispell&rsquo;s own scripts.
113 </p>
114 <a name="Differences-From-Ispell"></a><a name="Differences-From-Ispell-1"></a>
115 <h4 class="subsection">3.2.2 Differences From Ispell</h4>
116
117 <p>Nevertheless, Aspell is not Ispell, nor is it meant to completely
118 emulate the behavior of Ispell.  The <code>aspell</code> command is not
119 identical to the <code>ispell</code> command when not used in &ldquo;pipe&rdquo;
120 mode.  If an application expects the <code>ispell</code> command, then
121 the Ispell compatibility script should be used instead.
122 </p>
123 <a name="Functionality-of-the-Ispell-Compatibility-Script"></a>
124 <h4 class="subsubsection">3.2.2.1 Functionality of the Ispell Compatibility Script</h4>
125
126 <p>The Ispell compatibility script provides the following Ispell
127 functionally.
128 </p>
129 <ul>
130 <li> The ability to check a file when called without any mode parameters.
131
132 </li><li> The pipe or -a mode.
133
134 </li><li> The list or -l mode.
135
136 </li><li> The version or -v mode.  A single line is returned which, while not
137 being identical to the line Ispell returns, is sufficient to fool most
138 programs.
139
140 </li><li> The munch or -c mode.
141
142 </li><li> The expand or -e mode.
143
144 </li><li> The ability to dump the affix file when called with &rsquo;-D&rsquo;.  However the
145 format of the affix file is different.  Furthermore, not all languages
146 have an affix file.
147
148 </li></ul>
149
150 <p>However the Ispell script is currently unable to emulate
151 the &rsquo;-A&rsquo; pipe mode.  This is different from the normal pipe mode in
152 that the special <code>&amp;Include_File&amp;</code> command is recognized.
153 </p>
154 <a name="Recognized-Options"></a>
155 <h4 class="subsubsection">3.2.2.2 Recognized Options</h4>
156
157 <p>Aspell, and thus the Ispell compatibility script, recognizes most of
158 the options that Ispell uses except for the &rsquo;-S&rsquo;, &rsquo;-w&rsquo; and &rsquo;-T&rsquo;
159 options.  The Aspell command will simply ignore these options if it
160 sees them.
161 </p>
162 <a name="Check-Mode-Compatibility"></a>
163 <h4 class="subsubsection">3.2.2.3 Check Mode Compatibility</h4>
164
165 <p>The interface used by Aspell when checking individual files is
166 slightly different than Ispell&rsquo;s.  In particular the default
167 keymappings are not the same as the ones Ispell uses.  However Aspell
168 supports using the Ispell keymappings via the <samp>keymapping</samp>
169 option.  To use the Ispell keymappings set the <samp>kepmapping</samp>
170 option to <code>ispell</code>.  This can be done on the command line by
171 adding using the command:
172 </p>
173 <div class="example">
174 <pre class="example">  aspell check --keymapping=ispell &hellip;
175 </pre><pre class="example">or with the Ispell compatibility script
176 </pre><pre class="example">  ispell --keymapping=ispell &hellip;
177 </pre></div>
178
179 <p>The Ispell keymapping can always be used when the Ispell compatibly
180 script is called by uncommenting the indicated line in the
181 <code>ispell</code> script.
182 </p>
183 <a name="Pipe-Mode-Compatibility"></a>
184 <h4 class="subsubsection">3.2.2.4 Pipe Mode Compatibility</h4>
185
186 <p>The Aspell pipe mode should be identical to the Ispell pipe mode except
187 if the line starts with a &rsquo;$$&rsquo; as that will trigger special Aspell
188 only commands or if the line starts with a &rsquo;~&rsquo; which is ignored by Aspell.
189 </p>
190 <a name="Other-Differences"></a>
191 <h4 class="subsubsection">3.2.2.5 Other Differences</h4>
192
193 <p>The compiled dictionary format is completely different than Ispell&rsquo;s.
194 Furthermore the format of the language data files&rsquo; are different than
195 Ispell&rsquo;s affix file.  However, all known Ispell dictionaries were
196 converted to Aspell format, except for Albanian (sq) as I was unable
197 to find the source word list.
198 </p>
199 <p>The naming and format of the personal dictionary is also different.
200 However, Ispell personal dictionaries can be imported using the
201 <code>aspell-import</code> script.  See <a href="Using-aspell_002dimport.html#Using-aspell_002dimport">Using aspell-import</a>.  The
202 Ispell personal dictionary is simply a list of words while the Aspell
203 one is a list of words with a header line.  Thus it is also fairly
204 easy to convert between the two.  See <a href="Format-of-the-Personal-and-Replacement-Dictionaries.html#Format-of-the-Personal-Dictionary">Format of the Personal Dictionary</a>.
205 </p>
206 <a name="Missing-Functionally"></a>
207 <h4 class="subsubsection">3.2.2.6 Missing Functionally</h4>
208
209 <p>The only major area where Ispell is superior to Aspell is in the
210 handling of multi character letters such as old ASCII encoding of
211 accented characters.
212 </p>
213 <p>However, Aspell can handle UTF-8 documents far better than Ispell
214 can.
215 </p>
216 <hr>
217 <div class="header">
218 <p>
219 Next: <a href="Using-Aspell-with-other-Applications.html#Using-Aspell-with-other-Applications" accesskey="n" rel="next">Using Aspell with other Applications</a>, Previous: <a href="Spellchecking-Individual-Files.html#Spellchecking-Individual-Files" accesskey="p" rel="prev">Spellchecking Individual Files</a>, Up: <a href="Basic-Usage.html#Basic-Usage" accesskey="u" rel="up">Basic Usage</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
220 </div>
221
222
223
224 </body>
225 </html>