a match or end pattern of a region includes a '$'
to match the end-of-line, it will make a region item that it is
contained in continue on the next line. For example, a match with
"\\$" (backslash at the end of the line) can make a region continue
that would normally stop at the end of the line. This is the default
behavior. If this is not wanted, there are two ways to avoid it:
1. Use "keepend" for the containing item. This will keep all
contained matches from extending the match or region. It can be
used when all contained items must not extend the containing item.
2. Use "excludenl" in the contained item. This will keep that match
from extending the containing match or region. It can be used if
only some contained items must not extend the containing item.
"excludenl" must be given before the pattern it applies to.
*:syn-matchgroup*
"matchgroup" can be used to highlight the start and/or end pattern
differently than the body of the region. Example: >
:syntax region String matchgroup=Quote start=+"+ skip=+\\"+ end=+"+
< This will highlight the quotes with the "Quote" group, and the text in
between with the "String" group.
The "matchgroup" is used for all start and end patterns that follow,
until the next "matchgroup". Use "matchgroup=NONE" to go back to not
using a matchgroup.
In a start or end pattern that is highlighted with "matchgroup" the
contained items of the region are not used. This can be used to avoid
that a contained item matches in the start or end pattern match. When
using "transparent", this does not apply to a start or end pattern
match that is highlighted with "matchgroup".
Here is an example, which highlights three levels of parentheses in
different colors: >
:sy region par1 matchgroup=par1 start=/(/ end=/)/ contains=par2
:sy region par2 matchgroup=par2 start=/(/ end=/)/ contains=par3 contained
:sy region par3 matchgroup=par3 start=/(/ end=/)/ contains=par1 contained
:hi par1 ctermfg=red guifg=red
:hi par2 ctermfg=blue guifg=blue
:hi par3 ctermfg=darkgreen guifg=darkgreen
<
*E849*
The maximum number of syntax groups is 19999.
==============================================================================
7. :syntax arguments *:syn-arguments*
The :syntax commands that define syntax items take a number of arguments.
The common ones are explained here. The arguments may be given in any order
and may be mixed with patterns.
Not all commands accept all arguments. This table shows which arguments
can not be used for all commands:
*E395*
contains oneline fold display extend concealends~
:syntax keyword - - - - - -
:syntax match yes - yes yes yes -
:syntax region yes yes yes yes yes yes
These arguments can be used for all three commands:
conceal
cchar
contained
containedin
nextgroup
transparent
skipwhite
skipnl
skipempty
conceal *conceal* *:syn-conceal*
When the "conceal" argument is given, the item is marked as concealable.
Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
Another way to conceal text is with |matchadd()|, but internally this works a
bit differently |syntax-vs-match|.
concealends *:syn-concealends*
When the "concealends" argument is given, the start and end matches of
the region, but not the contents of the region, are marked as concealable.
Whether or not they are actually concealed depends on the setting on the
'conceallevel' option. The ends of a region can only be concealed separately
in this way when they have their own highlighting via "matchgroup". The
|synconcealed()| function can be used to retrieve information about conealed
items.
cchar *:syn-cchar*
*E844*
The "cchar" argument defines the character shown in place of the item
when it is