13

BetterRainbowParenthesesで色付けされた括弧の色を変更したい。

色は次のように指定されます。

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

ソラリゼーションを使用しているので、特定の16進色が必要なので、次のようになります。

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

何が悪いのでしょうか?!

4

2 に答える 2

15

問題はGUIRGBカラーではなく、cterm=orange定義にあります。

:help cterm-colors認識された値についてはを参照してください。orangeそれらの1つではありません。

于 2013-03-26T09:24:34.450 に答える
0
function! Gfagivesorange()
         colors morning
         hi Spellbad   term=standout cterm=bold ctermfg=Red ctermbg=White
         hi Spellbad   term=standout cterm=NONE ctermfg=Orange ctermbg=White
         call Myhi()
endfunc

この関数はあなたにオレンジ(太字ではない赤)を与えます。これはNCURSESのことですが、人々はNCURSESを習得したり知ったりしていません(多くの情報提供者ではありません)。

于 2015-09-25T11:41:01.190 に答える