【问题标题】:Colorschemes not working in gvim despite working in Vim in the terminal尽管在终端中使用 Vim,但配色方案在 gvim 中不起作用
【发布时间】:2013-05-28 13:23:04
【问题描述】:

我遇到了以下问题:256 色配色方案在 Gvim 中不起作用,但它们在终端上的 Vim 中运行良好。

这个问题在我的 Ubuntu 机器和我的 Mac OSX 机器上都发生。根据我的阅读,这个问题与大多数人遇到的相反:通常 GVim 可以处理任何颜色方案,而人们在终端上运行 Vim 时会遇到颜色方案问题。

我有以下 .vimrc(我有一个 .gvimrc 里面什么都没有):

" For Pathogen
execute pathogen#infect()

colorscheme 256-grayvim 

set shiftwidth=3
set tabstop=3
set expandtab

set ruler
set nu

syntax on
set nowrap

当我在终端中打开 Vim 时,256-grayvim 运行良好。当我打开 Gvim 时,256-grayvim 显示为已加载(键入 :colorscheme 返回 256-grayvim)但是颜色完全错误 - 它们是默认的白色背景和黑色文本。此外,如果我然后键入:colorscheme 256-grayvim,或通过 GVim 的编辑菜单选择颜色方案,则颜色方案没有变化。

【问题讨论】:

    标签: ubuntu vim


    【解决方案1】:

    256-grayvim 不定义 gui 颜色它只定义终端颜色。

    你可以在查看 256-grayvim.vim 时看到这个

    hi Normal       ctermfg=253         ctermbg=235        cterm=None
    

    cterm* 高亮参数只影响终端颜色。要设置 gui 颜色,您需要 gui* 参数。

    所以改变这些可能会奏效。

    ctermfg -> guifg  
    ctermbg -> guibg
    cterm   -> gui
    

    但是您可能需要找到 gui 颜色的等效颜色,因为它们不接受 256 色


    编辑:这是一个函数,它将尝试将所有 cterm 内容转换为它们的 gui 等效项。 (它也会将 None 替换为 NONE,因为 MacVim 抱怨它不喜欢 None)。前 64 行定义了一个查找表,该表将 256 种颜色与其十六进制颜色相匹配。

    function! Convert_256()
    let ct = {
        \   '00'  : '000000',    '01'  : '800000',    '02'  : '008000',    '03'  : '808000',
        \   '04'  : '000080',    '05'  : '800080',    '06'  : '008080',    '07'  : 'c0c0c0',
        \   '08'  : '808080',    '09'  : 'ff0000',    '10'  : '00ff00',    '11'  : 'ffff00',
        \   '12'  : '0000ff',    '13'  : 'ff00ff',    '14'  : '00ffff',    '15'  : 'ffffff',
        \   '16'  : '000000',    '17'  : '00005f',    '18'  : '000087',    '19'  : '0000af',
        \   '20'  : '0000d7',    '21'  : '0000ff',    '22'  : '005f00',    '23'  : '005f5f',
        \   '24'  : '005f87',    '25'  : '005faf',    '26'  : '005fd7',    '27'  : '005fff',
        \   '28'  : '008700',    '29'  : '00875f',    '30'  : '008787',    '31'  : '0087af',
        \   '32'  : '0087d7',    '33'  : '0087ff',    '34'  : '00af00',    '35'  : '00af5f',
        \   '36'  : '00af87',    '37'  : '00afaf',    '38'  : '00afd7',    '39'  : '00afff',
        \   '40'  : '00d700',    '41'  : '00d75f',    '42'  : '00d787',    '43'  : '00d7af',
        \   '44'  : '00d7d7',    '45'  : '00d7ff',    '46'  : '00ff00',    '47'  : '00ff5f',
        \   '48'  : '00ff87',    '49'  : '00ffaf',    '50'  : '00ffd7',    '51'  : '00ffff',
        \   '52'  : '5f0000',    '53'  : '5f005f',    '54'  : '5f0087',    '55'  : '5f00af',
        \   '56'  : '5f00d7',    '57'  : '5f00ff',    '58'  : '5f5f00',    '59'  : '5f5f5f',
        \   '60'  : '5f5f87',    '61'  : '5f5faf',    '62'  : '5f5fd7',    '63'  : '5f5fff',
        \   '64'  : '5f8700',    '65'  : '5f875f',    '66'  : '5f8787',    '67'  : '5f87af',
        \   '68'  : '5f87d7',    '69'  : '5f87ff',    '70'  : '5faf00',    '71'  : '5faf5f',
        \   '72'  : '5faf87',    '73'  : '5fafaf',    '74'  : '5fafd7',    '75'  : '5fafff',
        \   '76'  : '5fd700',    '77'  : '5fd75f',    '78'  : '5fd787',    '79'  : '5fd7af',
        \   '80'  : '5fd7d7',    '81'  : '5fd7ff',    '82'  : '5fff00',    '83'  : '5fff5f',
        \   '84'  : '5fff87',    '85'  : '5fffaf',    '86'  : '5fffd7',    '87'  : '5fffff',
        \   '88'  : '870000',    '89'  : '87005f',    '90'  : '870087',    '91'  : '8700af',
        \   '92'  : '8700d7',    '93'  : '8700ff',    '94'  : '875f00',    '95'  : '875f5f',
        \   '96'  : '875f87',    '97'  : '875faf',    '98'  : '875fd7',    '99'  : '875fff',
        \   '100' : '878700',    '101' : '87875f',    '102' : '878787',    '103' : '8787af',
        \   '104' : '8787d7',    '105' : '8787ff',    '106' : '87af00',    '107' : '87af5f',
        \   '108' : '87af87',    '109' : '87afaf',    '110' : '87afd7',    '111' : '87afff',
        \   '112' : '87d700',    '113' : '87d75f',    '114' : '87d787',    '115' : '87d7af',
        \   '116' : '87d7d7',    '117' : '87d7ff',    '118' : '87ff00',    '119' : '87ff5f',
        \   '120' : '87ff87',    '121' : '87ffaf',    '122' : '87ffd7',    '123' : '87ffff',
        \   '124' : 'af0000',    '125' : 'af005f',    '126' : 'af0087',    '127' : 'af00af',
        \   '128' : 'af00d7',    '129' : 'af00ff',    '130' : 'af5f00',    '131' : 'af5f5f',
        \   '132' : 'af5f87',    '133' : 'af5faf',    '134' : 'af5fd7',    '135' : 'af5fff',
        \   '136' : 'af8700',    '137' : 'af875f',    '138' : 'af8787',    '139' : 'af87af',
        \   '140' : 'af87d7',    '141' : 'af87ff',    '142' : 'afaf00',    '143' : 'afaf5f',
        \   '144' : 'afaf87',    '145' : 'afafaf',    '146' : 'afafd7',    '147' : 'afafff',
        \   '148' : 'afd700',    '149' : 'afd75f',    '150' : 'afd787',    '151' : 'afd7af',
        \   '152' : 'afd7d7',    '153' : 'afd7ff',    '154' : 'afff00',    '155' : 'afff5f',
        \   '156' : 'afff87',    '157' : 'afffaf',    '158' : 'afffd7',    '159' : 'afffff',
        \   '160' : 'd70000',    '161' : 'd7005f',    '162' : 'd70087',    '163' : 'd700af',
        \   '164' : 'd700d7',    '165' : 'd700ff',    '166' : 'd75f00',    '167' : 'd75f5f',
        \   '168' : 'd75f87',    '169' : 'd75faf',    '170' : 'd75fd7',    '171' : 'd75fff',
        \   '172' : 'd78700',    '173' : 'd7875f',    '174' : 'd78787',    '175' : 'd787af',
        \   '176' : 'd787d7',    '177' : 'd787ff',    '178' : 'd7af00',    '179' : 'd7af5f',
        \   '180' : 'd7af87',    '181' : 'd7afaf',    '182' : 'd7afd7',    '183' : 'd7afff',
        \   '184' : 'd7d700',    '185' : 'd7d75f',    '186' : 'd7d787',    '187' : 'd7d7af',
        \   '188' : 'd7d7d7',    '189' : 'd7d7ff',    '190' : 'd7ff00',    '191' : 'd7ff5f',
        \   '192' : 'd7ff87',    '193' : 'd7ffaf',    '194' : 'd7ffd7',    '195' : 'd7ffff',
        \   '196' : 'ff0000',    '197' : 'ff005f',    '198' : 'ff0087',    '199' : 'ff00af',
        \   '200' : 'ff00d7',    '201' : 'ff00ff',    '202' : 'ff5f00',    '203' : 'ff5f5f',
        \   '204' : 'ff5f87',    '205' : 'ff5faf',    '206' : 'ff5fd7',    '207' : 'ff5fff',
        \   '208' : 'ff8700',    '209' : 'ff875f',    '210' : 'ff8787',    '211' : 'ff87af',
        \   '212' : 'ff87d7',    '213' : 'ff87ff',    '214' : 'ffaf00',    '215' : 'ffaf5f',
        \   '216' : 'ffaf87',    '217' : 'ffafaf',    '218' : 'ffafd7',    '219' : 'ffafff',
        \   '220' : 'ffd700',    '221' : 'ffd75f',    '222' : 'ffd787',    '223' : 'ffd7af',
        \   '224' : 'ffd7d7',    '225' : 'ffd7ff',    '226' : 'ffff00',    '227' : 'ffff5f',
        \   '228' : 'ffff87',    '229' : 'ffffaf',    '230' : 'ffffd7',    '231' : 'ffffff',
        \   '232' : '080808',    '233' : '121212',    '234' : '1c1c1c',    '235' : '262626',
        \   '236' : '303030',    '237' : '3a3a3a',    '238' : '444444',    '239' : '4e4e4e',
        \   '240' : '585858',    '241' : '626262',    '242' : '6c6c6c',    '243' : '767676',
        \   '244' : '808080',    '245' : '8a8a8a',    '246' : '949494',    '247' : '9e9e9e',
        \   '248' : 'a8a8a8',    '249' : 'b2b2b2',    '250' : 'bcbcbc',    '251' : 'c6c6c6',
        \   '252' : 'd0d0d0',    '253' : 'dadada',    '254' : 'e4e4e4',    '255' : 'eeeeee',
        \}
    
    %s/cterm\(\w\+\)=\([A-Za-z]\+\)/\=submatch(0) . ' gui' . submatch(1) . '=' . submatch(2)/g
    %s/cterm\(\w\+\)=\(\d\+\)/\=submatch(0) . ' gui' . submatch(1) . '=#' . ct[submatch(2)]/g
    %s/cterm=\(\w\+\)/\=submatch(0) . ' gui' . '=' . submatch(1)/g
    %s/None/NONE/g
    endfunction
    

    当它在 256-grayvim 上运行时,它会产生这个。

    " Vim color file
    " Maintainer:   Piotr Husiatyński <phusiatynski@gmail.com>
    
    set background=dark
    set t_Co=256
    let g:colors_name="256-grayvim"
    
    let python_highlight_all = 1
    let c_gnu = 1
    
    
    hi Normal       ctermfg=253 guifg=#dadada         ctermbg=235 guibg=#262626        cterm=NONE gui=NONE
    hi Cursor       ctermfg=Red guifg=Red         ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    hi SpecialKey   ctermfg=87 guifg=#5fffff          ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi Directory    ctermfg=76 guifg=#5fd700          ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    hi ErrorMsg     ctermfg=124 guifg=#af0000         ctermbg=White guibg=White      cterm=NONE gui=NONE
    hi PreProc      ctermfg=246 guifg=#949494         ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi Search       ctermfg=160 guifg=#d70000         ctermbg=232 guibg=#080808        cterm=Bold gui=Bold
    hi Type         ctermfg=75 guifg=#5fafff          ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi Statement    ctermfg=75 guifg=#5fafff          ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    hi Comment      ctermfg=244 guifg=#808080         ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    hi Identifier   ctermfg=111 guifg=#87afff         ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi DiffText     ctermfg=88 guifg=#870000          ctermbg=250 guibg=#bcbcbc        cterm=NONE gui=NONE
    hi Constant     ctermfg=208 guifg=#ff8700         ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    hi Todo         ctermfg=233 guifg=#121212         ctermbg=118 guibg=#87ff00        cterm=Bold gui=Bold
    hi Error        ctermfg=233 guifg=#121212         ctermbg=124 guibg=#af0000        cterm=Bold gui=Bold
    hi Special      ctermfg=160 guifg=#d70000         ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi Ignore       ctermfg=220 guifg=#ffd700         ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi Underline    ctermfg=244 guifg=#808080         ctermbg=NONE guibg=NONE       cterm=NONE gui=NONE
    
    hi FoldColumn   ctermfg=247 guifg=#9e9e9e         ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    hi StatusLineNC ctermfg=247 guifg=#9e9e9e         ctermbg=234 guibg=#1c1c1c        cterm=NONE gui=NONE
    hi StatusLine   ctermfg=247 guifg=#9e9e9e         ctermbg=233 guibg=#121212        cterm=Bold gui=Bold
    hi VertSplit    ctermfg=247 guifg=#9e9e9e         ctermbg=234 guibg=#1c1c1c        cterm=Bold gui=Bold
    
    hi LineNr       ctermfg=238 guifg=#444444         ctermbg=244 guibg=#808080        cterm=Bold gui=Bold
    hi LineNr       ctermfg=247 guifg=#9e9e9e         ctermbg=235 guibg=#262626        cterm=Bold gui=Bold
    hi NonText      ctermfg=87 guifg=#5fffff          ctermbg=NONE guibg=NONE       cterm=Bold gui=Bold
    
    
    hi Pmenu        ctermfg=White guifg=White       ctermbg=DarkGray guibg=DarkGray    cterm=NONE gui=NONE
    hi PmenuSel     ctermfg=NONE guifg=NONE        ctermbg=Gray guibg=Gray        cterm=Bold gui=Bold
    hi PmenuSbar    ctermfg=DarkGray guifg=DarkGray    ctermbg=DarkGray guibg=DarkGray    cterm=NONE gui=NONE
    hi PmenuThumb   ctermfg=Gray guifg=Gray        ctermbg=Gray guibg=Gray        cterm=NONE gui=NONE
    
    "vim: sw=4
    

    如果你用上面的替换你的 256-grayvim 它应该在 gvim 和终端中都可以工作。 (我不知道它看起来如何)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 2013-10-28
      相关资源
      最近更新 更多