Я хотел бы сделать что-то вроде следующего:
"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
, но VIM не позволит мне установить значения guifg таким образом («Ошибка: невозможно выделить цвет s: procdural_fg»... и так далее для каждого имени переменной).Я хотел бы определить подсветку синтаксиса таким образом, чтобы его можно было динамически изменять, изменяя значения локальной переменной и затем обновляя буфер (или все, что потребуется для применения новых значений цвета).
Это можно сделать в синтаксисе VIM?Если да, то как?
Я уже пробовал несколько вариантов:
"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
и
"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
, что приводит к ошибке с жалобами на красный, синий и т. Д.или v: красный, v: синий и т. д. являются неопределенными и / или недопустимыми выражениями.
спасибо, CCJ