To use 256 colors in vim it is needed to correctly set $TERM
variable. For gnome-terminal
it is gnome-256color
.
vim
uses $TERM
variable and terminfo files to determine terminal properties. To determine correct value of $TERM
you can add to your .bashrc this code from vim.wikia.com:
if [ "$TERM" = "xterm" ] ; then if [ -z "$COLORTERM" ] ; then if [ -z "$XTERM_VERSION" ] ; then echo "Warning: Terminal wrongly calling itself 'xterm'." else case "$XTERM_VERSION" in "XTerm(256)") TERM="xterm-256color" ;; "XTerm(88)") TERM="xterm-88color" ;; "XTerm") ;; *) echo "Warning: Unrecognized XTERM_VERSION: $XTERM_VERSION" ;; esac fi else case "$COLORTERM" in gnome-terminal) # Those crafty Gnome folks require you to check COLORTERM, # but don't allow you to just *favor* the setting over TERM. # Instead you need to compare it and perform some guesses # based upon the value. This is, perhaps, too simplistic. TERM="gnome-256color" ;; *) echo "Warning: Unrecognized COLORTERM: $COLORTERM" ;; esac fi fi SCREEN_COLORS="`tput colors`" if [ -z "$SCREEN_COLORS" ] ; then case "$TERM" in screen-*color-bce) echo "Unknown terminal $TERM. Falling back to 'screen-bce'." export TERM=screen-bce ;; *-88color) echo "Unknown terminal $TERM. Falling back to 'xterm-88color'." export TERM=xterm-88color ;; *-256color) echo "Unknown terminal $TERM. Falling back to 'xterm-256color'." export TERM=xterm-256color ;; esac SCREEN_COLORS=`tput colors` fi if [ -z "$SCREEN_COLORS" ] ; then case "$TERM" in gnome*|xterm*|konsole*|aterm|[Ee]term) echo "Unknown terminal $TERM. Falling back to 'xterm'." export TERM=xterm ;; rxvt*) echo "Unknown terminal $TERM. Falling back to 'rxvt'." export TERM=rxvt ;; screen*) echo "Unknown terminal $TERM. Falling back to 'screen'." export TERM=screen ;; esac SCREEN_COLORS=`tput colors` fi
Also you have to have corresponding terminfo files. On Ubuntu you can install additional terminfo definitions:
sudo apt-get install ncurses-termNow you have
gnome-256color
and other terminal definitions in /usr/share/terminfo
(directory depends on system). You can use such themes as desert256
, wombat256
etc.
To set colorscheme I use this code in my .vimrc
:
if has("gui_running") colorscheme wombat else colorscheme wombat256 endif
You can check how many colors are used inside vim
by examining t_Co
variable:
set t_Co t_Co=256I meet a difficulty with setting
$TERM
on one of Solaris servers I use. I had not colors in vim at all on this server. tput colors
said me -1
. There are not any terminfo file like *-256color
and I have not root priviledges to add needed terminfo files. $TERM
was set to xterm
. But I found xtermc
in terminfo directory. After setting $TERM
to xtermc
tput colors
gives 8, and I can use syntax highlighting in vim, although not 256 colors.
No comments:
Post a Comment