| *spell.txt* For Vim version 7.0aa. Last change: 2005 Mar 22 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| |
| Spell checking *spell* |
| |
| 1. Quick start |spell-quickstart| |
| X. Spell file format |spell-file-format| |
| |
| {Vi does not have any of these commands} |
| |
| Spell checking is not available when the |+syntax| feature has been disabled |
| at compile time. |
| |
| ============================================================================== |
| 1. Quick start *spell-quickstart* |
| |
| This command switches on spell checking: > |
| |
| :setlocal spell spelllang=en_us |
| |
| This switches the 'spell' option on and specifies to check for US English. |
| |
| The words that are not recognized are highlighted with one of these: |
| SpellBad word not recognized |
| SpellRare rare word |
| SpellLocal wrong spelling for selected region |
| |
| |
| PERFORMANCE |
| |
| Note that Vim does on-the-fly spellchecking. To make this work fast the |
| word list is loaded in memory. Thus this uses a lot of memory (2 Mbyte or |
| more). There might also be a noticable delay when the word list is loaded, |
| which happens when 'spelllang' is set. Each word list is only loaded once, |
| they are not deleted when 'spelllang' is made empty. When 'encoding' is set |
| the word lists are reloaded, thus you may notice a delay then too. |
| |
| |
| REGIONS |
| |
| A word may be spelled differently in various regions. For example, English |
| comes in (at least) these variants: |
| |
| en all regions |
| en_us US |
| en_gb Great Britain |
| en_ca Canada |
| |
| Words that are not used in one region but are used in another region are |
| highlighted with SpellLocal. |
| |
| Always use lowercase letters. |
| |
| |
| SPELL FILES |
| |
| Vim searches for spell files in the "spell" subdirectory of the directories in |
| 'runtimepath'. The name is: xx.yyy.spl, where: |
| xx the language name |
| yyy the value of 'encoding' |
| |
| Exception: Vim uses "latin1" when 'encoding' is "iso-8859-15". The euro sign |
| doesn't matter for spelling. |
| |
| Spelling for EBCDIC is currently not supported. |
| |
| A spell file might not be available in the current 'encoding'. You may try |
| using the "iconv" program to create one: > |
| |
| iconv -f latin1 -t koi8-r de.latin1.spl >de.koi8-r.spl |
| |
| However, if some characters cannot be presented in the target encoding this |
| will give wrong results. |
| |
| If a spell file only uses ASCII characters the encoding can be omitted. This |
| is useful for English: "en.spl" The file with encoding is checked first, thus |
| you could have one with encoding that includes words with non-ASCII characters |
| and use the ASCII file as a fall-back. |
| |
| |
| WORDS |
| |
| Vim uses a fixed method to recognize a word. This is independent of |
| 'iskeyword', so that it also works in help files and for languages that |
| include characters like '-' in 'iskeyword'. The word characters do depend on |
| 'encoding'. |
| |
| A word that starts with a digit is always ignored. |
| |
| |
| SYNTAX HIGHLIGHTING |
| |
| Files that use syntax highlighting can specify where spell checking should be |
| done: |
| |
| everywhere default |
| in specific items use "contains=@Spell" |
| everywhere but specific items use "contains=@NoSpell" |
| |
| Note that mixing @Spell and @NoSpell doesn't make sense. |
| |
| ============================================================================== |
| X. Spell file format *spell-file-format* |
| *E751* |
| |
| The spelling for a language is specified in file with a specific format. |
| The first character of a line specifies what follows in the line: |
| |
| line meaning ~ |
| -xx[-yy]... words for region xx (and region yy, etc.) follow |
| <word> normal word |
| ><word> rare word |
| +<word> optional addition after a word |
| !<word> normal word, keep upper/lower case |
| !><word> rare word, keep upper/lower case |
| !+<word> optional word addition, keep upper/lower case |
| #<anything> comment |
| |
| Empty lines are ignored. The word continues until the end of the line. Watch |
| out for trailing white space! |
| |
| Words that start with an upper-case letter will be required to start with an |
| upper-case letter. Otherwise, words must be in lower-case and case is |
| ignored. |
| |
| It is possible that a word appears both with an upper-case letter and as a |
| rare word. This means that the word with an upper-case letter is OK and the |
| word without the upper-case letter is rare. |
| *E753* |
| The region is specified with "-xx". For example, in the "en.spl" file "-us" |
| starts the word for "en_us". This can be repeated for words that are used in |
| more than one region. For example "-ca-us" is used for Canadian and US |
| English words. Use "---" to go back to the words for all regions. |
| |
| Vim supports up to eight regions. *E752* |
| |
| It is possible to have a match that starts with a valid word. In that case |
| the match is used, because it is longer. Example: |
| |
| we |
| =we're |
| |
| "re" is not a word, thus "=we're" is needed to avoid it gets highlighted. |
| |
| The "+" items may appear after any word. For English "'s" is used. Be |
| careful with this, it may hide mistakes. |
| |
| Vim will check for duplicate words in the files used, but you will only get |
| warnings if the 'verbose' option is set to 1 or more. |
| |
| Note that the "=" and "+" words will slow down the operation. Use them only |
| when really needed. |
| |
| |
| vim:tw=78:sw=4:ts=8:ft=help:norl: |