colors - E421 : Getting color name not recognized in perfectly valid statement

标签 colors hex vim

我想更改括号的颜色 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

可能出了什么问题?!

最佳答案

问题不在于 GUI RGB 颜色,而在于 cterm=orange 定义。

请参阅 :help cterm-colors 了解已识别的值; orange 不是其中之一。

关于colors - E421 : Getting color name not recognized in perfectly valid statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15633125/

相关文章:

python - 使用 skimage.color.rgb2lab() 将 RGB 三元组转换为 LAB 三元组

将十六进制值的字符串转换为整数

python - 使用 python 将十六进制转储到 YAML

bash - bash 中数字的表示和 bash 中十六进制数的 printf

vim 非逐行复制,没有前导或尾随空格

linux - 我可以在不离开vim的情况下获得root权限吗?

android - CardView 默认背景色有问题

java - 安卓颜色选择器

Vim:按级别排序

javascript - 使用 JavaScript 基于字符串创建十六进制颜色