Come sfuggire a parole chiave significative dai file di sintassi?


8

Sono arrivato attraverso questa riga in un file di sintassi .. non funziona:

syntax keyword Type Transparent

Immagino che questo abbia qualcosa da vedere con il fatto che transparentè una parola chiave significativa per Vim.

Cosa devo fare per evitarlo e ottenere la parola effettiva Transparentcolorata nei miei file come tutte le altre Typeparole? E se inciampo uno giorno attraversato altre parole chiave permaloso piace keyword, syn, matchecc?

Risposte:


12

Questa è una domanda interessante e sembra che la documentazione non dica nulla sull'evasione di quelle parole speciali. Innanzitutto, gli argomenti speciali che possono apparire ovunque dipendono dal comando di sintassi che usi. La documentazione menziona quegli argomenti speciali in : h: syn-argomenti

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

Per quanto riguarda la prima domanda, su come sfuggire a quegli argomenti speciali, ho provato a utilizzare l'elemento di sintassi speciale sintassi-parola chiave []e questo funziona:

:syntax keyword Type Eins Transparent[] contained[]

La []si usa per indicare una parte facoltativa di una parola chiave, in modo che ad esempio, Trans[parent]sarebbe definire le parole chiave distinte Trans, Transp, Transpa, ecc e da (ab-) utilizzando questo, ho fatto funzionare lo script sintassi di come si voleva.


E questa è una risposta molto interessante, che mi ha fatto imparare qualcosa che risolve il problema. Saluti :)
iago-lito 'considerando di lasciare il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.