Я взламываю плагин lightline для vim (скачанная версия). Я могу изменить цвета каждой темы. Я сделал то, что хорошо работает в схеме powerline.vim (путь: ~/.vim/pack/plugins/start/lightline/autoload/lightline/colorscheme/powerline.vim
)
Теперь я хочу, чтобы цветовая тема менялась, пока я в vim. Я добавил этот код в начало powerline.vim:
10 let s:BSsplitscolor = "'darkestgreen', 'brightgreen'"
11 if g:BSsplitsbool == "1"
12 let s:BSsplitscolor = "'gray4', 'brightorange'"
13 endif
14
15 " ============================== NOTE: below : already there
16
17 let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
18 let s:p.normal.left = [ [s:BSsplitscolor, 'bold'], ['white', 'gray4'] ]
Здесь s:BSsplitscolor
содержит нужные мне цвета: либо 'gray4', 'brightorange'
, если g:BSsplitsbool
равно 1
, либо 'darkestgreen', 'brightgreen'
, если нет. Меняется g:BSsplitsbool
.
Теперь проблема в 16-й строке: когда я добавляю s:BSsplitscolor
после [ [
, я получаю эти ошибки при перезапуске vim (перевод с французского):
Error detected while treating functionlightline#update[5]..lightline#colorscheme[18]..lightline#highlight :
line 18 :
E254: can not allocate color darkestgreen
E416: missing '=' : , 'brightgreen' guibg=bold ctermfg=0 ctermbg=0
Error detected while treating function lightline#update :
line 5 :
E171: missing :endif
Я думаю, что я что-то упускаю... Я не очень хорошо разбираюсь в сценариях vim: я могу сделать инструкцию if, переназначить и все.