Setting the Vim background colors

315,659

Solution 1

As vim's own help on set background says, "Setting this option does not change the background color, it tells Vim what the background color looks like. For changing the background color, see |:hi-normal|."

For example

:highlight Normal ctermfg=grey ctermbg=darkblue

will write in white on blue on your color terminal.

Solution 2

In a terminal emulator like konsole or gnome-terminal, you should to set a 256 color setting for vim.

:set  t_Co=256

After that you can to change your background.

Solution 3

Try adding

set background=dark

to your .gvimrc too. This work well for me.

Solution 4

Using set bg=dark with a white background can produce nearly unreadable text in some syntax highlighting schemes. Instead, you can change the overall colorscheme to something that looks good in your terminal. The colorscheme file should set the background attribute for you appropriately. Also, for more information see:

:h color

Solution 5

supplement of windows

gvim version: 8.2

location of .gvimrc: %userprofile%/.gvimrc

" .gvimrc
colorscheme darkblue

Which color is allows me to choose?

Find your install directory and go to the directory of colors. in my case is: %PROGRAMFILES(X86)%\Vim\vim82\colors

blue.vim
darkblue.vim
slate.vim
...
README.txt
Share:
315,659
Maksim Vi.
Author by

Maksim Vi.

Software developer in an online social entertainment company

Updated on July 08, 2022

Comments

  • Maksim Vi.
    Maksim Vi. almost 2 years

    When I try to change the background colors in .vimrc or directly in Vim using the command:

    set background=dark
    

    ... it doesn't affect my background at all. Neither does the light option. However, it looks okay when I run gvim.

    Is there a way to change the background in Vim without changing my Konsole settings?

    EDIT Okay, there is a difference between guifg/guibg and ctermfg/ctermbg. While the GUI accepts lots of different color combinations, cterm allows only few standard ones.

  • Maksim Vi.
    Maksim Vi. almost 15 years
    Thanks, it works. I tried that option before, but it seems that not all colors work, for instance brown and yellow options don't affect my default console background at all.
  • rampion
    rampion almost 15 years
    that may be b/c of what kind of terminal vim thinks you have.
  • Maksim Vi.
    Maksim Vi. almost 15 years
    that actually why I posted my question here. Even dark colorschemes didn't affect my default background color.
  • Alex Martelli
    Alex Martelli almost 15 years
    Yep, setting up your terminal description properly to make vim happy can be a hassle (I remember epic past battles with early Linux, BSD and other Unix flavors -- nowadays with Mac and Ubuntu it just seems to work, more or less, even across ssh among them, and I don't have to do much vi-editing elsewhere these days).
  • Marin
    Marin about 11 years
    How can I add this to my vimrc?
  • Matthew
    Matthew about 11 years
    Also see :help hl-NonText for the background colour after the last line of the file.
  • Matthew
    Matthew about 11 years
    @Marin: put exactly the line from the example into your vimrc :highlight Normal ctermfg=grey ctermbg=darkblue. Sub in whatever colours you want.
  • Bart Louwers
    Bart Louwers about 8 years
    You probably want to set that in your Terminal instead: export TERM='xterm-256color'.
  • Julio Marins
    Julio Marins almost 8 years
    LPT: don't try to execute .vimrc as a shell command just put the line there and be happy
  • JonnyRaa
    JonnyRaa about 5 years
    you can omit the ctermfg=blah if you just want to change the background colour
  • Leo
    Leo about 3 years
    Putting this in .vimrc does not work for me.