4 Stimmen

Ist es möglich, einen Vim-Syntax-Datei-Befehl über mehrere Zeilen laufen zu lassen?

Ich versuche, eine Syntaxdatei zu erstellen, und möchte einige Schlüsselwortgruppen für eine unterschiedliche farbliche Hervorhebung erstellen (z. B. würden reservierte Wörter, Operatoren usw. unterschiedliche Farben haben). Ich kann dies mit einer der beiden folgenden Optionen erreichen:

Option 1

syn keyword MyLangOperators operator1 operator2 operator3
syn keyword MyLangOperators operator4 operator5 operator6

syn keyword MyLangReserved reserved1 reserved2 reserved3
syn keyword MyLangReserved reserved4 reserved5 reserved6

Das ist nicht weiter schlimm, aber wenn ich versuche, sie in alphabetischer Reihenfolge zu halten, wird es sehr unübersichtlich, sobald die Zahl der Reservierten/Betreiber usw. ansteigt. Vor allem, wenn man irgendwo in der Mitte neue hinzufügen muss.

Option 2

syn keyword MyLangOperators operator1
syn keyword MyLangOperators operator2
syn keyword MyLangOperators operator3
syn keyword MyLangOperators operator4
syn keyword MyLangOperators operator5
syn keyword MyLangOperators operator6

syn keyword MyLangReserved reserved1
syn keyword MyLangReserved reserved2
syn keyword MyLangReserved reserved3
syn keyword MyLangReserved reserved4
syn keyword MyLangReserved reserved5
syn keyword MyLangReserved reserved6

Diese Option erleichtert das spätere Hinzufügen von Reservierungen/Operatoren, da sie leicht in alphabetischer Reihenfolge zu halten sind. Allerdings wird in jeder Zeile viel Text wiederholt (z. B. syn-Schlüsselwort [groupname]).

Gibt es eine Möglichkeit, den Befehl über mehrere Zeilen zu verteilen? Vielleicht so etwas wie dies:

syn keyword MyLangOperators ~
    operator1 ~
    operator2 ~
    operator3 ~
    operator4 ~
    operator5 ~
    operator6

syn keyword MyLangReserved ~
    reserved1 ~
    reserved2 ~
    reserved3 ~
    reserved4 ~
    reserved5 ~
    reserved6

In diesem Fall wäre die Tilde (~) ein Signal an den Vim-Editor, dass der Befehl in der nächsten Zeile weitergeht.

Gibt es so etwas, oder muss ich mich mit Option 1 oder 2 begnügen (am ehesten würde ich mich für 2 entscheiden)?

7voto

Peter Punkte 120325

Dies wird genügen ( :help line-continuation )

syn keyword MyLangOperators
    \ operator1
    \ operator2
    \ operator3
    \ operator4
    \ operator5
    \ operator6

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X