O emulador de terminal que você está usando também pode estar parafusando com as cores. Eu estava tendo um problema de cor com o vim no modo de 256 cores e acabou sendo o emulador de terminal do Konsole com o KDE que estava mudando as cores padrão e estava tornando o vim colorshemes todo estragado.
Acabei tendo que definir manualmente as cores para as cores esperadas para que funcione com elas.
Eu tive mais sorte com o seguinte:
- tela-256 cores
- força o tmux a assumir 256 cores: tmux -2
- use o urxvt para o terminal
- E o seguinte foi adicionado a .Xresources
~ / .Xresources
URxvt*background: black
URxvt*foreground: white
URxvt*font: xft: Inconsolata:size=12
URxvt*transparent: false
URxvt*depth: 32
Tente o seguinte script para ver se você está realmente obtendo 256 cores.
#!/bin/bash
#
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
#
T='gYw' # The test text
echo -e "\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs 3[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS 3[$FG3[$BG $T 3[0m";
done
echo;
done
echo