Your IP : 216.73.216.155


Current Path : /usr/share/doc/ispell/
Upload File :
Current File : //usr/share/doc/ispell/ispell.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
<!-- Created on November 9, 2009 by texi2html 1.82
texi2html was written by: 
            Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
<title>ISPELL V3.1</title>

<meta name="description" content="ISPELL V3.1">
<meta name="keywords" content="ISPELL V3.1">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.82">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
pre.display {font-family: serif}
pre.format {font-family: serif}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: serif; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: serif; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.roman {font-family:serif; font-weight:normal;}
span.sansserif {font-family:sans-serif; font-weight:normal;}
ul.toc {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">

<p>This file documents ISPELL, an interactive spelling corrector,
inside Emacs.
</p>
<p>Copyright 1988, 1990, 1991, 1992, 1993  Free Software Foundation, Inc.
</p>
<p>Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
</p>
<p>Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.
</p>
<p>Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Foundation.
</p>

<a name="Top"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1 class="settitle">ISPELL V3.1</h1>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Emacs">1. Using ispell from emacs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Old-Emacs">2. Old Emacs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Private">3. Your private dictionary</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Command-summary">4. All commands in emacs mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Near-misses">5. Definition of a near miss</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#History">6. Where it came from</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 &mdash; The Detailed Node Listing &mdash;

Using ispell from emacs

</pre></th></tr><tr><td align="left" valign="top"><a href="#Word">1.1 Checking a single word</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Buffer">1.2 Checking a whole buffer</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Region">1.3 Checking a region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Multiple-Dictionaries">1.4 Using Multiple Dictionaries</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
</table>



<p><code>Ispell</code> is a program that helps you to correct spelling errors in
a file, and to find the correct spelling of words.  When presented with
a word that is not in the dictionary, <code>ispell</code> attempts to find
<em>near misses</em> that might include the word you meant.
</p>
<p>This manual describes how to use ispell, as well as a little about
its implementation.
</p>

<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Emacs">1. Using ispell from emacs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Old-Emacs">2. Old Emacs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Private">3. Your private dictionary</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Command-summary">4. All commands in emacs mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Near-misses">5. Definition of a near miss</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#History">6. Where it came from</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
</pre></th></tr></table>

<hr size="1">
<a name="Emacs"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Top" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Word" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[ &lt;&lt; ]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Using-ispell-from-emacs"></a>
<h2 class="section">1. Using ispell from emacs</h2>

<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Word">1.1 Checking a single word</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Buffer">1.2 Checking a whole buffer</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Region">1.3 Checking a region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Multiple-Dictionaries">1.4 Using Multiple Dictionaries</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"></td></tr>
</table>

<hr size="6">
<a name="Word"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Emacs" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Buffer" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Emacs" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Checking-a-single-word"></a>
<h3 class="subsection">1.1 Checking a single word</h3>

<p>The simplest emacs command for calling ispell is &rsquo;M-$&rsquo; (meta-dollar.  On
some terminals, you must type ESC-$.) This checks the spelling of the
word under the cursor.  If the word is found in the dictionary, then a
message is printed in the echo area.  Otherwise, ISPELL attempts to
generate near misses.
</p>
<p>If any near misses are found, they are displayed in a separate window,
each preceded by a digit or character.  If one of these is the word you
wanted, just type its digit or character, and it will replace the
original word in your buffer.
</p>
<p>If no near miss is right, or if none are displayed, you have five
choices:
</p>
<dl compact="compact">
<dt> <kbd>I</kbd></dt>
<dd>
<p>Insert the word in your private dictionary.  Use this if you know that
the word is spelled correctly.
</p>
</dd>
<dt> <kbd>A</kbd></dt>
<dd>
<p>Accept the word for the duration of this editing session, but do not put
it in your private dictionary.  Use this if you are not sure about the
spelling of the word, but you do not want to look it up immediately, or
for terms that appear in your document but are not truly words.  The
next time you start ispell, it will have forgotten any accepted words.
</p>
</dd>
<dt> <kbd>SPC</kbd></dt>
<dd>
<p>Leave the word alone, and consider it misspelled if it is checked again. 
</p>
</dd>
<dt> <kbd>R</kbd></dt>
<dd>
<p>Replace the word.  This command prompts you for a string in the
minibuffer.  You may type more than one word, and each word you type
is checked again, possibly finding other near misses.  This command
provides a handy way to close in on a word that you have no idea how
to spell.  You can keep trying different spellings until you find one
that is close enough to get a near miss. 
</p>
</dd>
<dt> <kbd>L</kbd></dt>
<dd>
<p>Lookup.  Display words from the dictionary that contain a 
specified substring.  The substring is a regular expression,
which means it can contain special characters to be more 
selective about which words get displayed.
See <a href="emacs.html#Regexps">Regexps: (emacs)Regexps</a> section &lsquo;Regexps&rsquo; in <cite>emacs</cite>. 
</p>
<p>If the only special character in the regular expression is a leading
<code>^</code>, then a very fast binary search will be used, instead of
scanning the whole file.
</p>
<p>Only a few matching words can be displayed in the ISPELL window.
If you want to see more, use the <code>look</code> program directly from 
the shell.
</p></dd>
</dl>

<p>Of course, you can also type <kbd>&lt;Ctrl&gt;-G</kbd> to stop the command without
changing anything.
</p>
<p>If you make a change that you don&rsquo;t like, just use emacs&rsquo; normal undo
feature See <a href="emacs.html#undo">undo: (emacs)undo</a> section &lsquo;undo&rsquo; in <cite>emacs</cite>.
</p>
<hr size="6">
<a name="Buffer"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Word" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Emacs" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Checking-a-whole-buffer"></a>
<h3 class="subsection">1.2 Checking a whole buffer</h3>

<p>If you want to check the spelling of all the words in a buffer, type
the command <kbd>M-x ispell-buffer</kbd>.  This command scans the file, and makes
a list of all the misspelled words.  When it is done, it moves the
cursor to the first word on the list, and acts like you just typed M-$
See section <a href="#Word">Checking a single word</a>.
</p>
<p>When you finish with one word, the cursor is automatically moved to the
next.  If you want to stop in the middle of the list type <kbd>X</kbd> or
<kbd>&lt;Ctrl&gt;-G</kbd>.
</p>
<hr size="6">
<a name="Region"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Buffer" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Multiple-Dictionaries" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Emacs" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Checking-a-region"></a>
<h3 class="subsection">1.3 Checking a region</h3>

<p>You may check the words in the region with the command <kbd>M-x ispell-region</kbd>.
See See <a href="emacs.html#mark">mark: (emacs)mark</a> section &lsquo;mark&rsquo; in <cite>emacs</cite>.
</p>
<p>The commands available are the same as for checking a whole buffer.
</p>
<hr size="6">
<a name="Multiple-Dictionaries"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Emacs" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Using-Multiple-Dictionaries"></a>
<h3 class="subsection">1.4 Using Multiple Dictionaries</h3>

<p>Your site may have multiple dictionaries installed: a default one
(usually &lsquo;<tt>english.hash</tt>&rsquo;), and several others for different
languages (e.g. &lsquo;<tt>deutsch.hash</tt>&rsquo;) or variations on a language (such as
British spelling for English).  
</p>
<dl compact="compact">
<dt> <code>ispell-change-dictionary</code></dt>
<dd><a name="index-ispell_002dchange_002ddictionary"></a>

<p>This is the command to change the dictionary.  It prompts for a new
dictionary name, with completion on the elements of <code>ispell-dictionary</code>.
</p>
<p>It changes <code>ispell-dictionary</code> and kills the old ispell process, if
one was running.  A new one will be started as soon as necessary.
</p>
<p>By just answering <kbd>RET</kbd> you can find out what the current dictionary
is.
</p>
</dd>
<dt> <code>ispell-dictionary</code></dt>
<dd><a name="index-ispell_002ddictionary"></a>

<p>If non-nil, a dictionary to use instead of the default one.
This is passed to the ispell process using the <code>-d</code> switch and is
used as key in <code>ispell-dictionary-alist</code>.
</p>
<p>You should set this variable before your first call to ispell (e.g. in
your &lsquo;<tt>.emacs</tt>&rsquo;), or use the <kbd>M-x ispell-change-dictionary</kbd>
command to change it, as changing this variable only takes effect in a
newly started ispell process.
</p>
</dd>
<dt> <code>ispell-dictionary-alist</code></dt>
<dd><a name="index-ispell_002ddictionary_002dalist"></a>

<p>An alist of dictionaries and their associated parameters.
</p>
<p>Each element of this list is also a list:
</p>
<table><tr><td>&nbsp;</td><td><pre class="example">(<var>dictionary-name</var>
    <var>casechars</var> <var>not-casechars</var> <var>otherchars</var> <var>many-otherchars-p</var>
    <var>ispell-args</var>)
</pre></td></tr></table>

<p><var>dictionary-name</var> is a possible value of variable
<code>ispell-dictionary</code>, <code>nil</code> means the default dictionary.
</p>
<p><var>casechars</var> is a regular expression of valid characters that
comprise a word.
</p>
<p><var>not-casechars</var> is the opposite regexp of <var>casechars</var>.
</p>
<p><var>otherchars</var> is a regular expression of other characters that are
valid in word constructs.  Otherchars cannot be adjacent to each other
in a word, nor can they begin or end a word.  This implies we can&rsquo;t
check &lsquo;<samp>Stevens'</samp>&rsquo; as a correct possessive and other correct
formations.
</p>
<p>Hint: regexp syntax requires the hyphen to be declared first here.
</p>
<p><var>many-otherchars-p</var> is non-nil if many otherchars are to be allowed
in a word instead of only one.
</p>
<p><var>ispell-args</var> is a list of additional arguments passed to the ispell
subprocess.
</p>
<p>Note that the <var>casechars</var> and <var>otherchars</var> slots of the alist should
contain the same character set as casechars and otherchars in the
<var>language</var>&lsquo;<tt>.aff</tt>&rsquo; file (e.g., &lsquo;<tt>english.aff</tt>&rsquo;).
</p>
</dd>
</dl>

<hr size="6">
<a name="Old-Emacs"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Multiple-Dictionaries" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Private" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Private" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Old-Emacs-1"></a>
<h2 class="section">2. Old Emacs</h2>

<p>Until ispell becomes part of the standard emacs distribution, you will
have to explicitly request that it be loaded.  Put the following lines
in your emacs init file See <a href="emacs.html#init-file">(emacs)init file</a> section &lsquo;init file&rsquo; in <cite>emacs</cite>.
</p>
<table><tr><td>&nbsp;</td><td><pre class="example">(autoload 'ispell-word &quot;ispell&quot; &quot;Check the spelling of word in buffer.&quot; t)
(autoload 'ispell-region &quot;ispell&quot; &quot;Check the spelling of region.&quot; t)
(autoload 'ispell-buffer &quot;ispell&quot; &quot;Check the spelling of buffer.&quot; t)
(global-set-key &quot;\e$&quot; 'ispell-word)
</pre></td></tr></table>

<p>(It will do no harm to have these lines in your init file even after
ispell is installed by default.)
</p>
<hr size="6">
<a name="Private"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Old-Emacs" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Command-summary" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Old-Emacs" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Command-summary" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Your-private-dictionary"></a>
<h2 class="section">3. Your private dictionary</h2>

<p>Whenever ispell is started the file &lsquo;<tt>.ispell_words</tt>&rsquo; is read from
your home directory (if it exists).  This file contains a list of words,
one per line.  The order of the words is not important, but the case is.
Ispell will consider all of the words good, and will use them as
possible near misses.
</p>
<p>The <kbd>I</kbd> command adds words to &lsquo;<tt>.ispell_words</tt>&rsquo;, so normally you
don&rsquo;t have to worry about the file.  You may want to check it from
time to time to make sure you have not accidentally inserted a
misspelled word.
</p>
<hr size="6">
<a name="Command-summary"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Private" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Near-misses" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Private" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Near-misses" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="All-commands-in-emacs-mode"></a>
<h2 class="section">4. All commands in emacs mode</h2>

<dl compact="compact">
<dt> <kbd>DIGIT</kbd></dt>
<dd><p>Select a near miss
</p></dd>
<dt> <kbd>I</kbd></dt>
<dd><p>Insert into private dictionary
</p></dd>
<dt> <kbd>A</kbd></dt>
<dd><p>Accept for this session
</p></dd>
<dt> <kbd>SPC</kbd></dt>
<dd><p>Skip this time
</p></dd>
<dt> <kbd>R</kbd></dt>
<dd><p>Replace with one or more words
</p></dd>
<dt> <kbd>L</kbd></dt>
<dd><p>Lookup: search the dictionary using a regular expression 
</p></dd>
<dt> <kbd>M-$</kbd></dt>
<dd><p>Check word
</p></dd>
<dt> <kbd>M-x ispell-buffer</kbd></dt>
<dd><p>Check buffer
</p></dd>
<dt> <kbd>M-x ispell-region</kbd></dt>
<dd><p>Check region
</p></dd>
<dt> <kbd>M-x ispell-change-dictionary</kbd></dt>
<dd><p>Select different dictionary.
</p></dd>
</dl>

<hr size="6">
<a name="Near-misses"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Command-summary" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="#History" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Command-summary" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#History" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Definition-of-a-near-miss"></a>
<h2 class="section">5. Definition of a near miss</h2>

<p>Two words are near each other if they can be made identical with one
of the following changes to one of the words:
</p>
<table><tr><td>&nbsp;</td><td><pre class="example">Insert a blank space
Interchange two adjacent letters.
Change one letter.
Delete one letter.
Add one letter.
</pre></td></tr></table>

<p>Someday, perhaps ispell will be extended so that words that sound
alike would also be considered near misses.  If you would like to
implement this, see Knuth, Volume 3, page 392 for a description of the
Soundex algorithm which might apply. 
</p>
<hr size="6">
<a name="History"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Near-misses" title="Previous section in reading order"> &lt; </a>]</td>
<td valign="middle" align="left">[ &gt; ]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Near-misses" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[ &gt;&gt; ]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Where-it-came-from"></a>
<h2 class="section">6. Where it came from</h2>

<p>Ispell has a long and convoluted history.  Originally called SPELL, it
was written by Ralph E. Gorin in 1971.  That version was written in
assembly language for the DEC PDP-10 to run under the WAITS operating
system at the Stanford Artificial Intelligence Laboratory.  Subsequent
versions, also in PDP-10 assembly language, were developed for the BBN
TENEX, MIT ITS, and DEC TOPS-10 and TOPS-20 operating systems.  It was
later revised by W. E. Matson (1974), and W. B. Ackerman (1978),
changing its name to ISPELL in the process.
</p>
<p>In 1983, Pace Willisson (pace@ai.mit.edu) converted this version to
the C language and modified it to work under Unix.
</p>
<p>In 1987, Walt Buehring revised and enhanced ispell, and posted it to the
Usenet along with a dictionary.  In addition, Walt wrote the first version
of &quot;ispell.el&quot;, the emacs interface.
</p>
<p>Geoff Kuenning (geoff@ITcorp.com, that&rsquo;s me, and by the way I pronounce
it &quot;Kenning&quot;) picked up this version, fixed many bugs, and added further
enhancements.  In 1988 I got ambitious and rewrote major portions of the
code, resulting in the table-driven multi-lingual version.  Ken Stevens
(stevens@hplabs.hp.com) made overwhelming contributions to the elisp
support to produce the version you are using now.
</p>
<p>Due to a misunderstanding involving the Free Software Foundation, it
later became necessary to rename this version to ispell to avoid
confusion on the part of users.
</p>
<p>Many other enhancements and bug fixes were provided by other people.
Although I omit mention here due to space, many of these people have
also made significant contributions to the version of ispell you see
here.  For a full list of people who have contributed to ispell, refer
to the file &lsquo;<tt>Contributors</tt>&rsquo; which is distributed with the ispell
sources.
</p>
<p>Geoff Kuenning <br>
geoff@ITcorp.com <br>
</p>

<hr size="6">
<a name="SEC_Contents"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>Table of Contents</h1>
<div class="contents">

<ul class="toc">

  <ul class="toc">
    <li><a name="toc-Using-ispell-from-emacs" href="#Emacs">1. Using ispell from emacs</a>
    <ul class="toc">
      <li><a name="toc-Checking-a-single-word" href="#Word">1.1 Checking a single word</a></li>
      <li><a name="toc-Checking-a-whole-buffer" href="#Buffer">1.2 Checking a whole buffer</a></li>
      <li><a name="toc-Checking-a-region" href="#Region">1.3 Checking a region</a></li>
      <li><a name="toc-Using-Multiple-Dictionaries" href="#Multiple-Dictionaries">1.4 Using Multiple Dictionaries</a></li>
    </ul></li>
    <li><a name="toc-Old-Emacs-1" href="#Old-Emacs">2. Old Emacs</a></li>
    <li><a name="toc-Your-private-dictionary" href="#Private">3. Your private dictionary</a></li>
    <li><a name="toc-All-commands-in-emacs-mode" href="#Command-summary">4. All commands in emacs mode</a></li>
    <li><a name="toc-Definition-of-a-near-miss" href="#Near-misses">5. Definition of a near miss</a></li>
    <li><a name="toc-Where-it-came-from" href="#History">6. Where it came from</a></li>
  </ul>
</li>
</ul>
</div>
<hr size="1">
<a name="SEC_About"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[Index]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>About This Document</h1>
<p>
  This document was generated by <em>Debian AMD64 Buildd</em> on <em>November 9, 2009</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
</p>
<p>
  The buttons in the navigation panels have the following meaning:
</p>
<table border="1">
  <tr>
    <th> Button </th>
    <th> Name </th>
    <th> Go to </th>
    <th> From 1.2.3 go to</th>
  </tr>
  <tr>
    <td align="center"> [ &lt; ] </td>
    <td align="center">Back</td>
    <td>Previous section in reading order</td>
    <td>1.2.2</td>
  </tr>
  <tr>
    <td align="center"> [ &gt; ] </td>
    <td align="center">Forward</td>
    <td>Next section in reading order</td>
    <td>1.2.4</td>
  </tr>
  <tr>
    <td align="center"> [ &lt;&lt; ] </td>
    <td align="center">FastBack</td>
    <td>Beginning of this chapter or previous chapter</td>
    <td>1</td>
  </tr>
  <tr>
    <td align="center"> [ Up ] </td>
    <td align="center">Up</td>
    <td>Up section</td>
    <td>1.2</td>
  </tr>
  <tr>
    <td align="center"> [ &gt;&gt; ] </td>
    <td align="center">FastForward</td>
    <td>Next chapter</td>
    <td>2</td>
  </tr>
  <tr>
    <td align="center"> [Top] </td>
    <td align="center">Top</td>
    <td>Cover (top) of document</td>
    <td> &nbsp; </td>
  </tr>
  <tr>
    <td align="center"> [Contents] </td>
    <td align="center">Contents</td>
    <td>Table of contents</td>
    <td> &nbsp; </td>
  </tr>
  <tr>
    <td align="center"> [Index] </td>
    <td align="center">Index</td>
    <td>Index</td>
    <td> &nbsp; </td>
  </tr>
  <tr>
    <td align="center"> [ ? ] </td>
    <td align="center">About</td>
    <td>About (help)</td>
    <td> &nbsp; </td>
  </tr>
</table>

<p>
  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
</p>

<ul>
  <li> 1. Section One
    <ul>
      <li>1.1 Subsection One-One
        <ul>
          <li>...</li>
        </ul>
      </li>
      <li>1.2 Subsection One-Two
        <ul>
          <li>1.2.1 Subsubsection One-Two-One</li>
          <li>1.2.2 Subsubsection One-Two-Two</li>
          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
            <strong>&lt;== Current Position </strong></li>
          <li>1.2.4 Subsubsection One-Two-Four</li>
        </ul>
      </li>
      <li>1.3 Subsection One-Three
        <ul>
          <li>...</li>
        </ul>
      </li>
      <li>1.4 Subsection One-Four</li>
    </ul>
  </li>
</ul>

<hr size="1">
<p>
 <font size="-1">
  This document was generated by <em>Debian AMD64 Buildd</em> on <em>November 9, 2009</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
 </font>
 <br>

</p>
</body>
</html>