Was ich gerne machen würde, ist etwas wie das Folgende:
"define our language struct variables with their default syntax color values
let s:procedural_fg = "Red"
let s:declarative_fg = "Blue"
let s:string_fg = "DarkGray"
...
"Now the actual highlighting directives based on the groups defined elsewhere
hi cyLoops guifg=s:procedural_fg
hi cyConstants guifg=s:declarative_fg
hi cyString guifg=s:string_fg
aber VIM lässt mich die guifg-Werte nicht auf diese Weise festlegen ("Error: Cannot allocate color s:procedural_fg" ... und so weiter für jeden Variablennamen). Ich möchte die Syntaxhervorhebung auf diese Weise definieren, damit sie dynamisch geändert werden kann, indem ich die Werte der lokalen Variablen ändere und dann den Puffer aktualisiere (oder was auch immer nötig wäre, damit die neuen Farbwerte gelten).
Kann dies in einem VIM-Syntax-Skript erledigt werden? Wenn ja, wie?
Ich habe bereits mehrere Varianten ausprobiert:
"define our language struct variables with their default syntax color values
let s:procedural_fg = Red
let s:declarative_fg = Blue
let s:string_fg = DarkGray
...
"Now the actual highlighting directives based on the groups defined elsewhere
hi cyLoops guifg=s:procedural_fg
hi cyConstants guifg=s:declarative_fg
hi cyString guifg=s:string_fg
und
"define our language struct variables with their default syntax color values
let s:procedural_fg = v:Red
let s:declarative_fg = v:Blue
let s:string_fg = v:DarkGray
...
"Now the actual highlighting directives based on the groups defined elsewhere
hi cyLoops guifg=s:procedural_fg
hi cyConstants guifg=s:declarative_fg
hi cyString guifg=s:string_fg
was zu einer Fehlermeldung führt, die besagt, dass Red, Blue usw. oder v:Red, v:Blue usw. undefinierte und/oder ungültige Ausdrücke sind.
Danke, CCJ