我想更改用Better Rainbow Parentheses着色的括号的颜色。
颜色指定如下:
let g:rbpt_colorpairs = [
\ ['brown', 'RoyalBlue3'],
\ ['Darkblue', 'SeaGreen3'],
\ ['darkgray', 'DarkOrchid3'],
\ ['darkgreen', 'firebrick3'],
\ ['darkcyan', 'RoyalBlue3'],
\ ['darkred', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
…
\ ]
在插件中更改颜色的功能是这样的:
func! rainbow_parentheses#toggle()
if !exists('s:active')
cal rainbow_parentheses#load(0)
endif
let afunc = exists('s:active') && s:active ? 'clear' : 'activate'
cal call('rainbow_parentheses#'.afunc, [])
endfunc
由于我使用的是 Solarized 我想要特定的十六进制颜色,所以我得到了这个:
let g:rbpt_colorpairs = [
\ ['yellow', '#b58900'],
\ ['orange', '#cb4b16'],
\ ['red', '#dc322f'],
\ ['magenta', '#d33682'],
\ ['violet', '#6c71c4'],
\ ['blue', '#268bd2'],
\ ['cyan', '#2aa198'],
…
\ ]
然而,在重新启动并打开插件时,我多次收到此错误:
E421: Color name or number not recognized: cterm=orange guifg=#cb4b16
更好的是,在函数中手动执行 :exe 就像一个魅力,比如:
:exe 'hi default level4c ctermfg=orange guifg=#cb4b16'
即使连接它也有效:
:let foo = '#cb4b16
:exe 'hi default level4c ctermfg=orange guifg='.foo
可能有什么问题?!