Reputation: 744
I'm having the following issue: 256-color colorschemes are not working in Gvim, but they work fine in Vim on the terminal.
This issue is happening on both my Ubuntu machine and on my Mac OSX machine. From what I've read this issue is the opposite of what most people encounter: usually GVim can deal with any colorscheme and people instead have colorscheme issues running Vim on terminals.
I have the following .vimrc (I have a .gvimrc with nothing in it):
" For Pathogen
execute pathogen#infect()
colorscheme 256-grayvim
set shiftwidth=3
set tabstop=3
set expandtab
set ruler
set nu
syntax on
set nowrap
When I open Vim in a terminal 256-grayvim works perfectly. When I open up Gvim, 256-grayvim shows as loaded (typing :colorscheme
returns 256-grayvim) however the colors are completely wrong - they are the default white background and black text. Furthermore, if I then type :colorscheme 256-grayvim
, or select the colorscheme through GVim's Edit menu there is no change in colorscheme.
Upvotes: 1
Views: 787
Reputation: 31419
256-grayvim does not define gui colors it only defines terminal colors.
You can see this when you look in 256-grayvim.vim
hi Normal ctermfg=253 ctermbg=235 cterm=None
cterm*
arguments to highlight only affect terminal colors. To set the gui colors you need the gui*
arguments instead.
So changing these might work.
ctermfg -> guifg
ctermbg -> guibg
cterm -> gui
But you will probably need to find the equivalent color for gui colors because they don't accept 256 colors
Edit: Heres a function that will try and convert all cterm things to their gui equivalent. (It will also replace None to NONE since MacVim was complaining it didn't like None). The first 64 lines are defining a lookup table that matches the 256 color with its color in hex.
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
When it is run on 256-grayvim it produces this.
" Vim color file
" Maintainer: Piotr Husiatyński <[email protected]>
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
If you replace your 256-grayvim with the above it should work in both gvim and the terminal. (I have no idea how it looks though)
Upvotes: 6