Using 256 colours in terminals is well-supported in GNU/Linux distributions these days, and also in Windows terminal emulators like PuTTY. Using 256 colours is great for Vim colorschemes in particular, but also very useful for Tmux colouring or any other terminal application where a slightly wider colour space might be valuable. Be warned that once you get this going reliably, there’s no going back if you spend a lot of time in the terminal.
To set this up for
xterm or emulators that use
xterm as the default value
$TERM, such as
gnome-terminal, it generally
suffices to check the options for your terminal emulator to ensure that it will
allow 256 colors, and then use the TERM string
xterm-256color for it.
An earlier version of this post suggested changing the
TERM definition in
.bashrc, which is generally not a good idea, even if bounded with conditionals
as my example was. You should always set the terminal string in the emulator
itself if possible, if you do it at all.
Be aware that older systems may not have
terminfo definitions for this
terminal, but you can always copy them in using a private
if need be.
To use 256 colours in Tmux, you should set the default terminal in
set -g default-terminal "screen-256color"
This will allow you to use color definitions like
colour231 in your status
lines and other configurations. Again, this particular
may not be present on older systems, so you should copy it into
~/.terminfo/s/screen-256color on those systems if you want to use it
Similarly, to use 256 colours in GNU Screen, add the following to your
With the applicable options from the above set, you should not need to change
anything in Vim to be able to use 256-color colorschemes. If you’re wanting to
write or update your own 256-colour compatible scheme, it should either begin
set t_Co=256, or more elegantly, check the value of the corresponding
option value is
&t_Co is 256 before trying to use any of the extra colour
The Vim Tips Wiki contains a detailed reference of the colour codes for schemes in 256-color terminals.