mirror of
https://github.com/vim/vim.git
synced 2025-09-06 21:53:38 -04:00
updated for version 7.0083
This commit is contained in:
parent
f3681cc330
commit
3638c6876d
@ -1,4 +1,4 @@
|
|||||||
*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 07
|
*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -69,17 +69,19 @@ zw Add word under the cursor as a wrong (bad) word to
|
|||||||
:spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'.
|
:spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'.
|
||||||
|
|
||||||
After adding a word to 'spellfile' its associated ".spl" file will
|
After adding a word to 'spellfile' its associated ".spl" file will
|
||||||
automatically be updated.
|
automatically be updated. More details about the 'spellfile' format below
|
||||||
|
|spell-wordlist-format|.
|
||||||
|
|
||||||
|
|
||||||
PERFORMANCE
|
PERFORMANCE
|
||||||
|
|
||||||
Note that Vim does on-the-fly spellchecking. To make this work fast the
|
Note that Vim does on-the-fly spell checking. To make this work fast the
|
||||||
word list is loaded in memory. Thus this uses a lot of memory (1 Mbyte or
|
word list is loaded in memory. Thus this uses a lot of memory (1 Mbyte or
|
||||||
more). There might also be a noticable delay when the word list is loaded,
|
more). There might also be a noticeable delay when the word list is loaded,
|
||||||
which happens when 'spelllang' is set. Each word list is only loaded once,
|
which happens when 'spelllang' or 'spell' is set. Each word list is only
|
||||||
they are not deleted when 'spelllang' is made empty. When 'encoding' is set
|
loaded once, they are not deleted when 'spelllang' is made empty or 'spell' is
|
||||||
the word lists are reloaded, thus you may notice a delay then too.
|
reset. When 'encoding' is set the word lists are reloaded, thus you may
|
||||||
|
notice a delay then too.
|
||||||
|
|
||||||
|
|
||||||
REGIONS
|
REGIONS
|
||||||
@ -95,26 +97,59 @@ comes in (at least) these variants:
|
|||||||
en_us USA
|
en_us USA
|
||||||
|
|
||||||
Words that are not used in one region but are used in another region are
|
Words that are not used in one region but are used in another region are
|
||||||
highlighted with SpellLocal.
|
highlighted with |SpellLocal|.
|
||||||
|
|
||||||
Always use lowercase letters for the language and region names.
|
Always use lowercase letters for the language and region names.
|
||||||
|
|
||||||
|
When adding a word with |zg| or another command it's always added for all
|
||||||
|
regions. You can change that by manually editing the 'spellfile'. See
|
||||||
|
|spell-wordlist-format|.
|
||||||
|
|
||||||
|
|
||||||
SPELL FILES
|
SPELL FILES
|
||||||
|
|
||||||
Vim searches for spell files in the "spell" subdirectory of the directories in
|
Vim searches for spell files in the "spell" subdirectory of the directories in
|
||||||
'runtimepath'. The name is: LL-XXX.EEE.spl, where:
|
'runtimepath'. The name is: LL.EEE.spl, where:
|
||||||
LL the language name
|
LL the language name
|
||||||
-XXX optional addition
|
|
||||||
EEE the value of 'encoding'
|
EEE the value of 'encoding'
|
||||||
|
|
||||||
|
Only the first file is loaded, the one that is first in 'runtimepath'. If
|
||||||
|
this succeeds then additionally files with the name LL.EEE.add.spl are loaded.
|
||||||
|
All the ones that are found are used.
|
||||||
|
|
||||||
Exceptions:
|
Exceptions:
|
||||||
- Vim uses "latin1" when 'encoding' is "iso-8859-15". The euro sign doesn't
|
- Vim uses "latin1" when 'encoding' is "iso-8859-15". The euro sign doesn't
|
||||||
matter for spelling.
|
matter for spelling.
|
||||||
- When no spell file for 'encoding' is found "ascii" is tried. This only
|
- When no spell file for 'encoding' is found "ascii" is tried. This only
|
||||||
works for languages where nearly all words are ASCII, such as English. It
|
works for languages where nearly all words are ASCII, such as English. It
|
||||||
helps when 'encoding' is not "latin1", such as iso-8859-2, and English text
|
helps when 'encoding' is not "latin1", such as iso-8859-2, and English text
|
||||||
is being edited.
|
is being edited. For the ".add" files the same name as the found main
|
||||||
|
spell file is used.
|
||||||
|
|
||||||
|
For example, with these values:
|
||||||
|
'runtimepath' is "~/.vim,/usr/share/vim70,~/.vim/after"
|
||||||
|
'encoding' is "iso-8859-2"
|
||||||
|
'spelllang' is "pl"
|
||||||
|
|
||||||
|
Vim will look for:
|
||||||
|
1. ~/.vim/spell/pl.iso-8859-2.spl
|
||||||
|
2. /usr/share/vim70/spell/pl.iso-8859-2.spl
|
||||||
|
3. ~/.vim/spell/pl.iso-8859-2.add.spl
|
||||||
|
4. /usr/share/vim70/spell/pl.iso-8859-2.add.spl
|
||||||
|
5. ~/.vim/after/spell/pl.iso-8859-2.add.spl
|
||||||
|
|
||||||
|
This assumes 1. is not found and 2. is found.
|
||||||
|
|
||||||
|
If 'encoding' is "latin1" Vim will look for:
|
||||||
|
1. ~/.vim/spell/pl.latin1.spl
|
||||||
|
2. /usr/share/vim70/spell/pl.latin1.spl
|
||||||
|
3. ~/.vim/after/spell/pl.latin1.spl
|
||||||
|
4. ~/.vim/spell/pl.ascii.spl
|
||||||
|
5. /usr/share/vim70/spell/pl.ascii.spl
|
||||||
|
6. ~/.vim/after/spell/pl.ascii.spl
|
||||||
|
|
||||||
|
This assumes none of them are found (Polish doesn't make sense when leaving
|
||||||
|
out the non-ASCII characters).
|
||||||
|
|
||||||
Spelling for EBCDIC is currently not supported.
|
Spelling for EBCDIC is currently not supported.
|
||||||
|
|
||||||
@ -135,7 +170,8 @@ Vim uses a fixed method to recognize a word. This is independent of
|
|||||||
include characters like '-' in 'iskeyword'. The word characters do depend on
|
include characters like '-' in 'iskeyword'. The word characters do depend on
|
||||||
'encoding'.
|
'encoding'.
|
||||||
|
|
||||||
A word that starts with a digit is always ignored.
|
A word that starts with a digit is always ignored. That includes hex numbers
|
||||||
|
in the form 0xff and 0XFF.
|
||||||
|
|
||||||
|
|
||||||
SYNTAX HIGHLIGHTING *spell-syntax*
|
SYNTAX HIGHLIGHTING *spell-syntax*
|
||||||
@ -143,11 +179,13 @@ SYNTAX HIGHLIGHTING *spell-syntax*
|
|||||||
Files that use syntax highlighting can specify where spell checking should be
|
Files that use syntax highlighting can specify where spell checking should be
|
||||||
done:
|
done:
|
||||||
|
|
||||||
everywhere default
|
1. everywhere default
|
||||||
in specific items use "contains=@Spell"
|
2. in specific items use "contains=@Spell"
|
||||||
everywhere but specific items use "contains=@NoSpell"
|
3. everywhere but specific items use "contains=@NoSpell"
|
||||||
|
|
||||||
Note that mixing @Spell and @NoSpell doesn't make sense.
|
For the second method adding the @NoSpell cluster will disable spell checking
|
||||||
|
again. This can be used, for example, to add @Spell to the comments of a
|
||||||
|
program, and add @NoSpell for items that shouldn't be checked.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
2. Generating a spell file *spell-mkspell*
|
2. Generating a spell file *spell-mkspell*
|
||||||
@ -234,7 +272,7 @@ requires two files, one with .aff and one with .dic extension. The second
|
|||||||
format is a list of words.
|
format is a list of words.
|
||||||
|
|
||||||
|
|
||||||
FORMAT OF WORD LIST
|
FORMAT OF WORD LIST *spell-wordlist-format*
|
||||||
|
|
||||||
The words must appear one per line. That is all that is required.
|
The words must appear one per line. That is all that is required.
|
||||||
Additionally the following items are recognized:
|
Additionally the following items are recognized:
|
||||||
@ -243,13 +281,30 @@ Additionally the following items are recognized:
|
|||||||
- A line starting with "/encoding=", before any word, specifies the encoding
|
- A line starting with "/encoding=", before any word, specifies the encoding
|
||||||
of the file. After the second '=' comes an encoding name. This tells Vim
|
of the file. After the second '=' comes an encoding name. This tells Vim
|
||||||
to setup conversion from the specified encoding to 'encoding'.
|
to setup conversion from the specified encoding to 'encoding'.
|
||||||
|
- A line starting with "/regions=" specifies the region names that are
|
||||||
|
supported. Each region name must be two ASCII letters. The first one is
|
||||||
|
region 1. Thus "/regions=usca" has region 1 "us" and region 2 "ca".
|
||||||
|
In an addition word list the list should be equal to the main word list!
|
||||||
- A line starting with "/?" specifies a word that should be marked as rare.
|
- A line starting with "/?" specifies a word that should be marked as rare.
|
||||||
- A line starting with "/!" specifies a word that should be marked as bad.
|
- A line starting with "/!" specifies a word that should be marked as bad.
|
||||||
- A line starting with "/=" specifies a word where case must match exactly.
|
- A line starting with "/=" specifies a word where case must match exactly.
|
||||||
A "?" or "!" may be following: "/=?" and "/=!".
|
A "?" or "!" may be following: "/=?" and "/=!".
|
||||||
|
- Digits after "/" indicate the regions in which the word is valid. If no
|
||||||
|
regions are specified the word is valid in all regions.
|
||||||
- Other lines starting with '/' are reserved for future use. The ones that
|
- Other lines starting with '/' are reserved for future use. The ones that
|
||||||
are not recognized are ignored (but you do get a warning message).
|
are not recognized are ignored (but you do get a warning message).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
# This is an example word list comment
|
||||||
|
/encoding=latin1 encoding of the file
|
||||||
|
/regions=uscagb regions "us", "ca" and "gb"
|
||||||
|
example word for all regions
|
||||||
|
/1blah word for region 1 "us"
|
||||||
|
/!Vim bad word
|
||||||
|
/?3Campbell rare word in region 3 "gb"
|
||||||
|
/='s mornings keep-case word
|
||||||
|
|
||||||
|
|
||||||
FORMAT WITH AFFIX COMPRESSION
|
FORMAT WITH AFFIX COMPRESSION
|
||||||
|
|
||||||
@ -277,7 +332,7 @@ them before the Vim word list is made. The tools for this can be found in the
|
|||||||
"src/spell" directory.
|
"src/spell" directory.
|
||||||
|
|
||||||
|
|
||||||
WORD LIST FORMAT *spell-wordlist-format*
|
WORD LIST FORMAT *spell-dic-format*
|
||||||
|
|
||||||
A very short example, with line numbers:
|
A very short example, with line numbers:
|
||||||
|
|
||||||
|
@ -3048,7 +3048,7 @@ set_option_default(opt_idx, opt_flags, compatible)
|
|||||||
|
|
||||||
varp = get_varp_scope(&(options[opt_idx]), both ? OPT_LOCAL : opt_flags);
|
varp = get_varp_scope(&(options[opt_idx]), both ? OPT_LOCAL : opt_flags);
|
||||||
flags = options[opt_idx].flags;
|
flags = options[opt_idx].flags;
|
||||||
if (varp != NULL) /* nothing to do for hidden option */
|
if (varp != NULL) /* skip hidden option, nothing to do for it */
|
||||||
{
|
{
|
||||||
dvi = ((flags & P_VI_DEF) || compatible) ? VI_DEFAULT : VIM_DEFAULT;
|
dvi = ((flags & P_VI_DEF) || compatible) ? VI_DEFAULT : VIM_DEFAULT;
|
||||||
if (flags & P_STRING)
|
if (flags & P_STRING)
|
||||||
@ -6678,6 +6678,7 @@ set_bool_option(opt_idx, varp, value, opt_flags)
|
|||||||
if (curwin->w_p_spell)
|
if (curwin->w_p_spell)
|
||||||
{
|
{
|
||||||
char_u *errmsg = did_set_spelllang(curbuf);
|
char_u *errmsg = did_set_spelllang(curbuf);
|
||||||
|
|
||||||
if (errmsg != NULL)
|
if (errmsg != NULL)
|
||||||
EMSG(_(errmsg));
|
EMSG(_(errmsg));
|
||||||
}
|
}
|
||||||
|
18
src/syntax.c
18
src/syntax.c
@ -2202,10 +2202,10 @@ syn_current_attr(syncing, displaying, can_spell)
|
|||||||
* done in the current item.
|
* done in the current item.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* If there is no @Spell cluster: Do spelling for items without
|
|
||||||
* @NoSpell. Otherwise only in items with @Spell */
|
|
||||||
if (syn_buf->b_spell_cluster_id == 0)
|
if (syn_buf->b_spell_cluster_id == 0)
|
||||||
{
|
{
|
||||||
|
/* There is no @Spell cluster: Do spelling for items without
|
||||||
|
* @NoSpell cluster. */
|
||||||
if (syn_buf->b_nospell_cluster_id == 0 || current_trans_id == 0)
|
if (syn_buf->b_nospell_cluster_id == 0 || current_trans_id == 0)
|
||||||
*can_spell = TRUE;
|
*can_spell = TRUE;
|
||||||
else
|
else
|
||||||
@ -2216,7 +2216,11 @@ syn_current_attr(syncing, displaying, can_spell)
|
|||||||
*can_spell = !in_id_list(sip, sip->si_cont_list, &sps, 0);
|
*can_spell = !in_id_list(sip, sip->si_cont_list, &sps, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (current_trans_id == 0)
|
else
|
||||||
|
{
|
||||||
|
/* The @Spell cluster is defined: Do spelling in items with
|
||||||
|
* the @Spell cluster. But not when @NoSpell is also there. */
|
||||||
|
if (current_trans_id == 0)
|
||||||
*can_spell = FALSE;
|
*can_spell = FALSE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2224,6 +2228,14 @@ syn_current_attr(syncing, displaying, can_spell)
|
|||||||
sps.id = syn_buf->b_spell_cluster_id;
|
sps.id = syn_buf->b_spell_cluster_id;
|
||||||
sps.cont_in_list = NULL;
|
sps.cont_in_list = NULL;
|
||||||
*can_spell = in_id_list(sip, sip->si_cont_list, &sps, 0);
|
*can_spell = in_id_list(sip, sip->si_cont_list, &sps, 0);
|
||||||
|
|
||||||
|
if (syn_buf->b_nospell_cluster_id != 0)
|
||||||
|
{
|
||||||
|
sps.id = syn_buf->b_nospell_cluster_id;
|
||||||
|
if (in_id_list(sip, sip->si_cont_list, &sps, 0))
|
||||||
|
*can_spell = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user