Do you use Vim in a black background Linux shell? Chances are you'll find the default colors for Vim or ls are hard to read, especially blue on black.

Tell Vim You are using a Dark Background

Configuring Vim is done by adding commands to the ~/.vimrc file. By default, Vim assumes you are using a white background. If you tell Vim you are using a dark background, it will display text with colors that are easier to see. Vim uses colors when it understands the syntax of the file you are editing, such as JavaScript. An example of this is shown in the first picture. Entering the following command in Vim will make the text more readable:

:set background=dark

To make this permanent just add the command to the end of ~/.vimrc and restart Vim. Your ~/.vimrc file might look like this for instance:

set background=dark tabstop=4

The other alternative is to just tell Vim not to interpret the syntax at all using the command:

set syntax=off

This results in a simple white on black screen, which works, but makes editing code a little more difficult.

Tell ls You are using a Dark Background

The ls command has a similar problem. Different file types and modes are colored differently. One default color is dark blue, which presents the same problem as editing files in Vim. The fix for this is setting the LS_COLORS environment variable to a very complicated string, for instance:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:

This is unfortunately complex... fortunately the ** dircolors** program can generate this data given a file. I found this Github project that has a library of themes for ls.

git clone https://github.com/seebi/dircolors-solarized.git .dircolors-solarized

Just add this code to your .profile or .bashrc file:

echo 'eval $(dircolors ~/.dircolors-solarized/dircolors.ansi-light)' >> .bash_aliases

Note: the convention for ls is reversed, instead of telling ls you have a dark background you use the theme style, i.e. a light style for a dark background. You should see the ls colors change as shown below.