Wie entkomme ich wichtige Schlüsselwörter aus Syntaxdateien?

8

Ich bin über diese Zeile in einer Syntaxdatei gekommen. Es funktioniert nicht:

syntax keyword Type Transparent

Ich denke, das hat etwas mit der Tatsache zu tun, dass dies transparentein wichtiges Schlüsselwort für Vim ist.

Was soll ich tun, um dem zu entkommen und das tatsächliche Wort Transparentwie alle anderen TypeWörter in meine Dateien einzufärben? Was passiert , wenn ich eines Tages stolpern accross andere heikles Schlüsselwörter wie keyword, syn, matchetc?

iago-lito 'erwägt zu gehen
quelle

Antworten:

12

Dies ist eine interessante Frage, und es sieht so aus, als ob die Dokumentation nichts darüber aussagt, diesen speziellen Wörtern zu entkommen. Erstens hängen spezielle Argumente, die überall auftreten können, davon ab, welchen Syntaxbefehl Sie verwenden. In der Dokumentation werden diese speziellen Argumente unter : h: syn-Argumente erwähnt

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

Bei der ersten Frage, wie man diesen speziellen Argumenten entgeht, habe ich versucht, das spezielle Syntaxelement syntax-keyword zu verwenden. []Dies funktioniert:

:syntax keyword Type Eins Transparent[] contained[]

Das []ist rein optional Teil eines Stichwortes zu bezeichnen, so dass beispielsweise Trans[parent]die einzelnen Keywords definieren würde Trans, Transp, Transpa, etc. und durch (ab-) mit diesem habe ich die Syntax Skript arbeiten , wie man wollte.

Christian Brabandt
quelle
Und dies ist eine sehr interessante Antwort, die mich lernen ließ, dass etwas das Problem löst. Prost :)
iago-lito 'erwägt, den