Mostly I edit Ruby files, although shell script file comments are also #

Currently my comments show as dark blue on black which is really hard to read.

See screenshot.

How can I change their color?

I'm willing to consider different schemas for all colors though I do like the black background as a base.

A screenshot of a terminal window with Vim running in it. The comments are dark blue on black background making them hardly visible.

  • 4
    I like a contrasting background for comments -- it sets them off from the code, eg. hi Comment ctermbg=gray ctermfg=darkblue. You can set your color scheme and then change it bit by bit; put the bits in a seperate file and source it from your vimrc at the end. – goldilocks Aug 30 '13 at 16:05
  • TL;DR Just edit ~/.vimrc and add the line colorscheme desert – intotecho Dec 7 at 3:47
up vote 191 down vote accepted

There are many color schemes which are usually distributed together with vim. You can select them with the :color command.

You can see the available color schemes in vim's colors folder, for example in my case:

$ ls /usr/share/vim/vimNN/colors/ # where vimNN is vim version, e.g. vim74
blue.vim  darkblue.vim  default.vim  delek.vim  desert.vim  elflord.vim 
evening.vim  koehler.vim  morning.vim  murphy.vim  pablo.vim  peachpuff.vim
README.txt  ron.vim  shine.vim  slate.vim  torte.vim  zellner.vim

I usually use desert. So I open vim, then enter :color desert and enter. To have the color scheme by default every time you open vim, add :color desert into your ~/.vimrc.

(Michael, OP) This was good. The terminal looks like:

Example of VIM on a Ruby file showing syntax highlighting in various colors

  • 15
    You can also cycle through available colors with TAB after typing :color. – Daddy32 May 15 '17 at 16:06

As you are using a dark background in your terminal, you simply need to set

:set background=dark

instead of the default

:set background=light

The colors are then automatically correctly set.

If you want to have this permanently, add the line

set background=dark

to your $HOME/.vimrc file.

  • 9
    While the accepted answer has useful information, this answer is far more concise about the root cause of the problem for folks like myself who prefer a dark themed terminal window. – Mark Edington Oct 5 '15 at 5:16
  • 4
    Unfortunately this still uses that almost unreadable dark blue in places. – rooby Mar 8 '16 at 0:32
  • 2
    @rooby Often, you can change the default colors in your terminal emulator, see also the other answers. – jofel Mar 8 '16 at 9:23
  • 3
    It seems rather strange that debian (at least) defaults to a dark background for its terminal window but the same distribution's vim defaults to a light background assumption about the terminal. – James Bowery Sep 5 '17 at 17:05
  • 1
    I think you can also just use bg instead of background – abonet Aug 3 at 18:36

You can do it manually with this command:

:hi Comment guifg=#ABCDEF

Where ABCDEF is an appropriate color hex code.

To make it permanent, you will need to add these lines to your ~/.vimrc file (using green as an example):

syntax on
:highlight Comment ctermfg=green
  • 5
    It's also possible to see your current highlight settings with :hi or :highlight (i.e. without any other arguments). – evilsoup Aug 30 '13 at 16:30
  • 1
    You can also change other types such as strings in supporting document types, example :highlight String ctermfg=green – aggregate1166877 Jun 22 '16 at 15:34

One option I found was in terminal preferences (top menu, not the window).

This has profile preferences and then a color tab, e.g.

enter image description here

Changing the Palette entry 5 from Dark blue to Light Lilac helped. I finally chose xterm as the color scheme and lightened up the comment color e.g.enter image description here

  • 2
    My only question now is if whether I can now save those preferences in a file so that they are there for a new machine setup. – Michael Durrant Aug 30 '13 at 14:43
  • 2
    I use xterm, and set the blue color to something palatable to my eyes in .Xresources: "XTerm*color4: light sky blue". – holygeek Aug 31 '13 at 15:00

I had precisely this problem a little while ago, the solution is to place the following line in your vimrc file:

set t_Co=256

And then you might have to put the following at the end of your your ~/.profile:

#set vim terminal to 256 colors.
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
else
    export TERM='xterm-color'
fi

and then you can set:

hi Comment      ctermfg=lightblue

in your vimrc file and then you will have light blue comments.
vimrc 256: http://vim.wikia.com/wiki/256_colors_in_vim

I also noticed the screen became somewhat prettier by setting it to 256.

If on a dark background in Debian, then uncommenting set background=dark in /etc/vim/vimrc helps, too.

Or, if you don't want to interfere with the package's config file, rather in (a new)
/etc/vim/vimrc.local

Here is nice git repo with 700+ colorschemes for vim

https://github.com/flazz/vim-colorschemes

clone it to ~/.vim/

git clone https://github.com/flazz/vim-colorschemes ~/.vim/

Preview schemes in vim with

:colorscheme mrkn256

(replace mrkn256 with one of these names ls ~/.vim/colors (without the .vim extension ))

To set it permanently edit ~/.vimrc add/change

colorscheme mrkn256

You can generate your own gvim colors and paste them into your vimrc. Using chrome http://www.hmi-tech.in/activities/gvim-color-scheme-interactive-generator.html Interactive Color picker to generate vim hilight colors

Maybe too far off topic but here goes

For Windows 10 WSL (Windows Subsystem for Linux)

this worked for me (in .vimrc)

syntax on

colorscheme desert (or whatever color scheme)

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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