Widoczne kolory są ograniczone przez "fizyczne" możliwości emulatora terminala, ale ich liczba jest ogólnie zmieniana przez zmienną środowiskową TERM
, która jest używana przez programy do określenia, w jaki sposób mogą one wyglądać elegancko .
W prostych słowach ...
kiedy Vim sprawdza TERM
i widzi wartość zawierającą 256
, to zakłada się, że emulator terminala jest zdolny do wyświetlania 256 kolorów i działa odpowiednio.
gdy TERM
jest xterm
lub screen
(między innymi), Vim zakłada Twój emulator terminala jest zdolny tylko do wyświetlania 8 kolorów i działa odpowiednio.
Zakładając swoją aktualną TERM
w lokalnym emulatorze terminala jest xterm-256color
i żaden pośrednika *rc
ustawia specyficzny TERM
:
WHERE TERM COLORS
--------------------------------------------------------------
local xterm-256color 256
local > vim xterm-256color 256
local > remote xterm-256color 256
local > remote > vim xterm-256color 256
local > remote > remote > remote > remote > remote > remote >
> remote > remote > remote > remote xterm-256color 256
local > remote > tmux screen 8
local > remote > tmux > vim screen 8
local > tmux screen 8
local > tmux > vim screen 8
local > tmux > remote screen 8
local > tmux > remote > tmux screen 8
local > tmux > remote > tmux > vim screen 8
tmux, jako terminal multiplekser, działa tak, jakby to był zacisk emulatora i zmienia domyślną wartość tmux na TERM
, a nowa wartość jest przekazywana wzdłuż łańcucha.
Jeśli chcesz, aby tmux i w fantazyjnych kolorach wszędzie, musisz skonfigurować każdy tmux, aby użyć 256 kolorów-ready TERM
. Ustaw tę linię na ~/.tmux.conf
na każdej maszynie, na której się logujesz, w tym na:
set-option -g default-terminal "screen-256color"