I am trying to set-up a simple vim colorscheme, which is black text on white background.

How do I make the background go White?

Based on bw.vim, however I am having a problem getting the background to go white, it goes gray instead.

hi Normal         ctermbg=White        ctermfg=Black

Gives the same result as:

hi Normal         ctermbg=Gray         ctermfg=Black

enter image description here

Although reversing them I can get White text on a black background.

Vim is running in an xterm with t_Co==8, Vim version:

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul  4 2011 14:31:51)


Using Gnome Terminal 2.16, Which uses a 16 color palette although :

tput colors

The terminal is telling applications it has 8 colors, which is setting t_Co to 8 in Vim.

Vim is using this info and using 'palette entry 8' for White, which in my case was set to a medium Gray. Not sure if the real issue is an incorrect response from tput or the incorrect mapping of White to the palette.


Adding -256color to term makes tput return 256 and makes vim t_Co 256 as well.

For csh:

setenv TERM $TERM-256color

Originally hesitant to blindly apply 256 color to any system I may be working on, but I think it would be rare to come across a terminal that does not support 256 colors these days. This would also have to be a system/network where I have already set-up my dotfiles.

2 Answers 2


if your terminal emulator is gnome-terminal, it has a setting for manually modifying the standard 16 colors it supports (gnome-terminal does not support 256 colors). go to profile preferences -> colors and update the white color, it may be gray over there.

  • 1
    Using GNOME Terminal 2.16, Which has a 16 colour palette, t_Co set to 8 by default. White picks up palette entry 8. White is held in palette entry 16 by default.
    – Munkymorgy
    Jun 6, 2013 at 12:30
  • 1
    My gnome-terminal does support 256 colors?! paste.nerv.fi/69030286-gnome-terminal-w-256-colours.png --- I see everyone talks about older versions so maybe not valid. Worth a mention anyway!
    – mike3996
    Jun 6, 2013 at 17:03
  • indeed, mine does too, and my version ( is way more recent than yours :-) I was led to error by another script I ran some while ago that showed me only 16 colors where it shall have shown 256 colors (to prove that the terminal is actually 256 colors).
    – zmo
    Jun 6, 2013 at 17:42
  • 2
    BTW, setting environment variable TERM=$TERM-256color can help a lot of programs detect correctly the terminal type.
    – zmo
    Jun 6, 2013 at 17:42

If your terminal emulator supports 256 colors, enable 256 colors in vim:

set t_Co=256

The background should show up white after issuing

:highlight Normal ctermfg=black ctermbg=white
  • I am trying to set-up colourschemes to fall back to based on t_Co and wanting just a basic black and white version. Might try this though and it will work where possible.
    – Munkymorgy
    Jun 6, 2013 at 12:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.