Essa é uma pergunta interessante e parece que a documentação não diz nada sobre como escapar dessas palavras especiais. Primeiro, argumentos especiais que podem aparecer em qualquer lugar dependem do comando de sintaxe que você usa. A documentação menciona esses argumentos especiais em : h: syn-argumentos
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
Quanto à primeira pergunta, sobre como escapar desses argumentos especiais, tentei usar o elemento de sintaxe especial sintaxe-palavra-chave []
e isso funciona:
:syntax keyword Type Eins Transparent[] contained[]
A []
é utilizado para designar uma parte opcional de uma palavra-chave, de modo que, por exemplo Trans[parent]
definiria as palavras-chave separadas Trans
, Transp
, Transpa
, etc e por (AB) utilizando este, eu fiz o trabalho de script sintaxe como você queria.