1 | This is Info file ispell.info, produced by Makeinfo-1.55 from the input |
---|
2 | file ispell.texinfo. |
---|
3 | |
---|
4 | This file documents ISPELL, an interactive spelling corrector. |
---|
5 | |
---|
6 | Copyright 1988, 1990, 1991, 1992, 1993 Free Software Foundation, |
---|
7 | Inc. |
---|
8 | |
---|
9 | Permission is granted to make and distribute verbatim copies of this |
---|
10 | manual provided the copyright notice and this permission notice are |
---|
11 | preserved on all copies. |
---|
12 | |
---|
13 | Permission is granted to copy and distribute modified versions of |
---|
14 | this manual under the conditions for verbatim copying, provided that |
---|
15 | the entire resulting derived work is distributed under the terms of a |
---|
16 | permission notice identical to this one. |
---|
17 | |
---|
18 | Permission is granted to copy and distribute translations of this |
---|
19 | manual into another language, under the above conditions for modified |
---|
20 | versions, except that this permission notice may be stated in a |
---|
21 | translation approved by the Foundation. |
---|
22 | |
---|
23 | * Menu: |
---|
24 | |
---|
25 | * Emacs:: Using ispell from emacs |
---|
26 | * Old Emacs:: Old Emacs |
---|
27 | * Private:: Your private dictionary |
---|
28 | * Command summary:: All commands in emacs mode |
---|
29 | * Near misses:: Definition of a near miss |
---|
30 | * History:: Where it came from |
---|
31 | |
---|
32 | -- The Detailed Node Listing -- |
---|
33 | |
---|
34 | Using ispell from emacs |
---|
35 | |
---|
36 | * Word:: Checking a single word |
---|
37 | * Buffer:: Checking a whole buffer |
---|
38 | * Region:: Checking a region |
---|
39 | * Multiple Dictionaries:: Using Multiple Dictionaries |
---|
40 | |
---|
41 | |
---|
42 | File: ispell.info, Node: Top, Next: Emacs, Prev: (dir), Up: (dir) |
---|
43 | |
---|
44 | `Ispell' is a program that helps you to correct spelling errors in a |
---|
45 | file, and to find the correct spelling of words. When presented with a |
---|
46 | word that is not in the dictionary, `ispell' attempts to find "near |
---|
47 | misses" that might include the word you meant. |
---|
48 | |
---|
49 | This manual describes how to use ispell, as well as a little about |
---|
50 | its implementation. |
---|
51 | |
---|
52 | * Menu: |
---|
53 | |
---|
54 | * Emacs:: Using ispell from emacs |
---|
55 | * Old Emacs:: Old Emacs |
---|
56 | * Private:: Your private dictionary |
---|
57 | * Command summary:: All commands in emacs mode |
---|
58 | * Near misses:: Definition of a near miss |
---|
59 | * History:: Where it came from |
---|
60 | |
---|
61 | |
---|
62 | File: ispell.info, Node: Emacs, Next: Old Emacs, Prev: Top, Up: Top |
---|
63 | |
---|
64 | Using ispell from emacs |
---|
65 | ======================= |
---|
66 | |
---|
67 | * Menu: |
---|
68 | |
---|
69 | * Word:: Checking a single word |
---|
70 | * Buffer:: Checking a whole buffer |
---|
71 | * Region:: Checking a region |
---|
72 | * Multiple Dictionaries:: Using Multiple Dictionaries |
---|
73 | |
---|
74 | |
---|
75 | File: ispell.info, Node: Word, Next: Buffer, Prev: Emacs, Up: Emacs |
---|
76 | |
---|
77 | Checking a single word |
---|
78 | ---------------------- |
---|
79 | |
---|
80 | The simplest emacs command for calling ispell is 'M-$' (meta-dollar. |
---|
81 | On some terminals, you must type ESC-$.) This checks the spelling of |
---|
82 | the word under the cursor. If the word is found in the dictionary, |
---|
83 | then a message is printed in the echo area. Otherwise, ISPELL attempts |
---|
84 | to generate near misses. |
---|
85 | |
---|
86 | If any near misses are found, they are displayed in a separate |
---|
87 | window, each preceded by a digit or character. If one of these is the |
---|
88 | word you wanted, just type its digit or character, and it will replace |
---|
89 | the original word in your buffer. |
---|
90 | |
---|
91 | If no near miss is right, or if none are displayed, you have five |
---|
92 | choices: |
---|
93 | |
---|
94 | `I' |
---|
95 | Insert the word in your private dictionary. Use this if you know |
---|
96 | that the word is spelled correctly. |
---|
97 | |
---|
98 | `A' |
---|
99 | Accept the word for the duration of this editing session, but do |
---|
100 | not put it in your private dictionary. Use this if you are not |
---|
101 | sure about the spelling of the word, but you do not want to look |
---|
102 | it up immediately, or for terms that appear in your document but |
---|
103 | are not truly words. The next time you start ispell, it will have |
---|
104 | forgotten any accepted words. |
---|
105 | |
---|
106 | `SPC' |
---|
107 | Leave the word alone, and consider it misspelled if it is checked |
---|
108 | again. |
---|
109 | |
---|
110 | `R' |
---|
111 | Replace the word. This command prompts you for a string in the |
---|
112 | minibuffer. You may type more than one word, and each word you |
---|
113 | type is checked again, possibly finding other near misses. This |
---|
114 | command provides a handy way to close in on a word that you have |
---|
115 | no idea how to spell. You can keep trying different spellings |
---|
116 | until you find one that is close enough to get a near miss. |
---|
117 | |
---|
118 | `L' |
---|
119 | Lookup. Display words from the dictionary that contain a |
---|
120 | specified substring. The substring is a regular expression, which |
---|
121 | means it can contain special characters to be more selective about |
---|
122 | which words get displayed. *Note Regexps: (emacs)Regexps. |
---|
123 | |
---|
124 | If the only special character in the regular expression is a |
---|
125 | leading `^', then a very fast binary search will be used, instead |
---|
126 | of scanning the whole file. |
---|
127 | |
---|
128 | Only a few matching words can be displayed in the ISPELL window. |
---|
129 | If you want to see more, use the `look' program directly from the |
---|
130 | shell. |
---|
131 | |
---|
132 | Of course, you can also type G' to stop the command without |
---|
133 | changing anything. |
---|
134 | |
---|
135 | If you make a change that you don't like, just use emacs' normal undo |
---|
136 | feature *Note undo: (emacs)undo. |
---|
137 | |
---|
138 | |
---|
139 | File: ispell.info, Node: Buffer, Next: Region, Prev: Word, Up: Emacs |
---|
140 | |
---|
141 | Checking a whole buffer |
---|
142 | ----------------------- |
---|
143 | |
---|
144 | If you want to check the spelling of all the words in a buffer, type |
---|
145 | the command `M-x ispell-buffer'. This command scans the file, and makes |
---|
146 | a list of all the misspelled words. When it is done, it moves the |
---|
147 | cursor to the first word on the list, and acts like you just typed M-$ |
---|
148 | *Note Word::. |
---|
149 | |
---|
150 | When you finish with one word, the cursor is automatically moved to |
---|
151 | the next. If you want to stop in the middle of the list type `X' or |
---|
152 | G'. |
---|
153 | |
---|
154 | |
---|
155 | File: ispell.info, Node: Region, Next: Multiple Dictionaries, Prev: Buffer, Up: Emacs |
---|
156 | |
---|
157 | Checking a region |
---|
158 | ----------------- |
---|
159 | |
---|
160 | You may check the words in the region with the command `M-x |
---|
161 | ispell-region'. See *Note mark: (emacs)mark. |
---|
162 | |
---|
163 | The commands available are the same as for checking a whole buffer. |
---|
164 | |
---|
165 | |
---|
166 | File: ispell.info, Node: Multiple Dictionaries, Prev: Region, Up: Emacs |
---|
167 | |
---|
168 | Using Multiple Dictionaries |
---|
169 | --------------------------- |
---|
170 | |
---|
171 | Your site may have multiple dictionaries installed: a default one |
---|
172 | (usually `english.hash'), and several others for different languages |
---|
173 | (e.g. `deutsch.hash') or variations on a language (such as British |
---|
174 | spelling for English). |
---|
175 | |
---|
176 | `ispell-change-dictionary' |
---|
177 | This is the command to change the dictionary. It prompts for a new |
---|
178 | dictionary name, with completion on the elements of |
---|
179 | `ispell-dictionary'. |
---|
180 | |
---|
181 | It changes `ispell-dictionary' and kills the old ispell process, if |
---|
182 | one was running. A new one will be started as soon as necessary. |
---|
183 | |
---|
184 | By just answering `RET' you can find out what the current |
---|
185 | dictionary is. |
---|
186 | |
---|
187 | `ispell-dictionary' |
---|
188 | If non-nil, a dictionary to use instead of the default one. This |
---|
189 | is passed to the ispell process using the `-d' switch and is used |
---|
190 | as key in `ispell-dictionary-alist'. |
---|
191 | |
---|
192 | You should set this variable before your first call to ispell |
---|
193 | (e.g. in your `.emacs'), or use the `M-x ispell-change-dictionary' |
---|
194 | command to change it, as changing this variable only takes effect |
---|
195 | in a newly started ispell process. |
---|
196 | |
---|
197 | `ispell-dictionary-alist' |
---|
198 | An alist of dictionaries and their associated parameters. |
---|
199 | |
---|
200 | Each element of this list is also a list: |
---|
201 | |
---|
202 | (DICTIONARY-NAME |
---|
203 | CASECHARS NOT-CASECHARS OTHERCHARS MANY-OTHERCHARS-P |
---|
204 | ISPELL-ARGS) |
---|
205 | |
---|
206 | DICTIONARY-NAME is a possible value of variable |
---|
207 | `ispell-dictionary', `nil' means the default dictionary. |
---|
208 | |
---|
209 | CASECHARS is a regular expression of valid characters that |
---|
210 | comprise a word. |
---|
211 | |
---|
212 | NOT-CASECHARS is the opposite regexp of CASECHARS. |
---|
213 | |
---|
214 | OTHERCHARS is a regular expression of other characters that are |
---|
215 | valid in word constructs. Otherchars cannot be adjacent to each |
---|
216 | other in a word, nor can they begin or end a word. This implies |
---|
217 | we can't check `Stevens'' as a correct possessive and other correct |
---|
218 | formations. |
---|
219 | |
---|
220 | Hint: regexp syntax requires the hyphen to be declared first here. |
---|
221 | |
---|
222 | MANY-OTHERCHARS-P is non-nil if many otherchars are to be allowed |
---|
223 | in a word instead of only one. |
---|
224 | |
---|
225 | ISPELL-ARGS is a list of additional arguments passed to the ispell |
---|
226 | subprocess. |
---|
227 | |
---|
228 | Note that the CASECHARS and OTHERCHARS slots of the alist should |
---|
229 | contain the same character set as casechars and otherchars in the |
---|
230 | LANGUAGE`.aff' file (e.g., `english.aff'). |
---|
231 | |
---|
232 | |
---|
233 | File: ispell.info, Node: Old Emacs, Next: Private, Prev: Emacs, Up: Top |
---|
234 | |
---|
235 | Old Emacs |
---|
236 | ========= |
---|
237 | |
---|
238 | Until ispell becomes part of the standard emacs distribution, you |
---|
239 | will have to explicitly request that it be loaded. Put the following |
---|
240 | lines in your emacs init file *Note init file: (emacs)init file. |
---|
241 | |
---|
242 | (autoload 'ispell-word "ispell" "Check the spelling of word in buffer." t) |
---|
243 | (autoload 'ispell-region "ispell" "Check the spelling of region." t) |
---|
244 | (autoload 'ispell-buffer "ispell" "Check the spelling of buffer." t) |
---|
245 | (global-set-key "\e$" 'ispell-word) |
---|
246 | |
---|
247 | (It will do no harm to have these lines in your init file even after |
---|
248 | ispell is installed by default.) |
---|
249 | |
---|
250 | |
---|
251 | File: ispell.info, Node: Private, Next: Command summary, Prev: Old Emacs, Up: Top |
---|
252 | |
---|
253 | Your private dictionary |
---|
254 | ======================= |
---|
255 | |
---|
256 | Whenever ispell is started the file `.ispell_words' is read from |
---|
257 | your home directory (if it exists). This file contains a list of words, |
---|
258 | one per line. The order of the words is not important, but the case is. |
---|
259 | Ispell will consider all of the words good, and will use them as |
---|
260 | possible near misses. |
---|
261 | |
---|
262 | The `I' command adds words to `.ispell_words', so normally you don't |
---|
263 | have to worry about the file. You may want to check it from time to |
---|
264 | time to make sure you have not accidentally inserted a misspelled word. |
---|
265 | |
---|
266 | |
---|
267 | File: ispell.info, Node: Command summary, Next: Near misses, Prev: Private, Up: Top |
---|
268 | |
---|
269 | All commands in emacs mode |
---|
270 | ========================== |
---|
271 | |
---|
272 | `DIGIT' |
---|
273 | Select a near miss |
---|
274 | |
---|
275 | `I' |
---|
276 | Insert into private dictionary |
---|
277 | |
---|
278 | `A' |
---|
279 | Accept for this session |
---|
280 | |
---|
281 | `SPC' |
---|
282 | Skip this time |
---|
283 | |
---|
284 | `R' |
---|
285 | Replace with one or more words |
---|
286 | |
---|
287 | `L' |
---|
288 | Lookup: search the dictionary using a regular expression |
---|
289 | |
---|
290 | `M-$' |
---|
291 | Check word |
---|
292 | |
---|
293 | `M-x ispell-buffer' |
---|
294 | Check buffer |
---|
295 | |
---|
296 | `M-x ispell-region' |
---|
297 | Check region |
---|
298 | |
---|
299 | `M-x ispell-change-dictionary' |
---|
300 | Select different dictionary. |
---|
301 | |
---|
302 | |
---|
303 | File: ispell.info, Node: Near misses, Next: History, Prev: Command summary, Up: Top |
---|
304 | |
---|
305 | Definition of a near miss |
---|
306 | ========================= |
---|
307 | |
---|
308 | Two words are near each other if they can be made identical with one |
---|
309 | of the following changes to one of the words: |
---|
310 | |
---|
311 | Insert a blank space |
---|
312 | Interchange two adjacent letters. |
---|
313 | Change one letter. |
---|
314 | Delete one letter. |
---|
315 | Add one letter. |
---|
316 | |
---|
317 | Someday, perhaps ispell will be extended so that words that sound |
---|
318 | alike would also be considered near misses. If you would like to |
---|
319 | implement this, see Knuth, Volume 3, page 392 for a description of the |
---|
320 | Soundex algorithm which might apply. |
---|
321 | |
---|
322 | |
---|
323 | File: ispell.info, Node: History, Prev: Near misses, Up: Top |
---|
324 | |
---|
325 | Where it came from |
---|
326 | ================== |
---|
327 | |
---|
328 | Ispell has a long and convoluted history. Originally called SPELL, |
---|
329 | it was written by Ralph E. Gorin in 1971. That version was written in |
---|
330 | assembly language for the DEC PDP-10 to run under the WAITS operating |
---|
331 | system at the Stanford Artificial Intelligence Laboratory. Subsequent |
---|
332 | versions, also in PDP-10 assembly language, were developed for the BBN |
---|
333 | TENEX, MIT ITS, and DEC TOPS-10 and TOPS-20 operating systems. It was |
---|
334 | later revised by W. E. Matson (1974), and W. B. Ackerman (1978), |
---|
335 | changing its name to ISPELL in the process. |
---|
336 | |
---|
337 | In 1983, Pace Willisson (pace@ai.mit.edu) converted this version to |
---|
338 | the C language and modified it to work under Unix. |
---|
339 | |
---|
340 | In 1987, Walt Buehring revised and enhanced ispell, and posted it to |
---|
341 | the Usenet along with a dictionary. In addition, Walt wrote the first |
---|
342 | version of "ispell.el", the emacs interface. |
---|
343 | |
---|
344 | Geoff Kuenning (geoff@ITcorp.com, that's me, and by the way I |
---|
345 | pronounce it "Kenning") picked up this version, fixed many bugs, and |
---|
346 | added further enhancements. In 1988 I got ambitious and rewrote major |
---|
347 | portions of the code, resulting in the table-driven multi-lingual |
---|
348 | version. Ken Stevens (stevens@hplabs.hp.com) made overwhelming |
---|
349 | contributions to the elisp support to produce the version you are using |
---|
350 | now. |
---|
351 | |
---|
352 | Due to a misunderstanding involving the Free Software Foundation, it |
---|
353 | later became necessary to rename this version to ispell to avoid |
---|
354 | confusion on the part of users. |
---|
355 | |
---|
356 | Many other enhancements and bug fixes were provided by other people. |
---|
357 | Although I omit mention here due to space, many of these people have |
---|
358 | also made significant contributions to the version of ispell you see |
---|
359 | here. For a full list of people who have contributed to ispell, refer |
---|
360 | to the file `Contributors' which is distributed with the ispell sources. |
---|
361 | |
---|
362 | Geoff Kuenning |
---|
363 | geoff@ITcorp.com |
---|
364 | |
---|
365 | |
---|
366 | Tag Table: |
---|
367 | Node: Top1347 |
---|
368 | Node: Emacs2006 |
---|
369 | Node: Word2296 |
---|
370 | Node: Buffer4853 |
---|
371 | Node: Region5422 |
---|
372 | Node: Multiple Dictionaries5734 |
---|
373 | Node: Old Emacs8248 |
---|
374 | Node: Private8929 |
---|
375 | Node: Command summary9583 |
---|
376 | Node: Near misses10139 |
---|
377 | Node: History10781 |
---|
378 | |
---|
379 | End Tag Table |
---|