Как установить синтаксис подсветки цветов в VIM для значений локальных переменных в синтаксическом скрипте? - PullRequest
2 голосов
/ 05 января 2012

Я хотел бы сделать что-то вроде следующего:

"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

1 Ответ

2 голосов
/ 05 января 2012

Используйте :exec, то есть для Vim, что eval для Perl или оболочки bash:

:exec 'hi cyLoops guifg=' . s:procedural_fg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...