Kiedy nie używać tmux
lub screen
, tylko trzeba skonfigurować emulatory terminali do reklamowania się jako „zdolny do wyświetlania 256 kolorów” poprzez ustawienie ich TERM
do xterm-256color
lub dowolny porównywalna wartość, która współpracuje ze swoimi terminali i platform . Sposób, w jaki to zrobisz, będzie zależeć od emulatora terminala i będzie poza zakresem pytania i odpowiedzi.
Nie musisz nic robić w Vim, ponieważ jest on całkowicie zdolny zrobić to, co trzeba.
Podczas korzystania tmux
lub screen
, programy te ustawić własne wartości domyślne dla $TERM
, zwykle screen
i Vim robi to, co ma do czynienia z informacją, że jest składane.
Jeśli chcesz bardziej jednolite (i kolorowe) zachowanie, należy skonfigurować je do korzystania z "lepsze" wartość $TERM
:
tmux
Dodaj tę linię do ~/.tmux.conf
:
set -g default-terminal "screen-256color"
ekran
Dodaj tę linię do ~/.screenrc
:
term "screen-256color"
Teraz oba multipleksery powie Vima obsługują one 256 kolorów i Vim zrobi to, czego od niego oczekujesz.
edit
Moja odpowiedź zakłada, że jesteś w stanie edytować te pliki konfiguracyjne, ale ponieważ jesteś w stanie edytować ~/.vimrc
, nie sądzę, że jestem tak daleko od prawdy .
edycja 2
Wartość opcji term
(pobranej z &term
) to nazwa terminala jako pobrane przez vim na starcie. To nazwa, którą powinieneś ustawić w swoim emulatorze terminala.
Wartość opcji t_Co
(&t_Co
) jest tym, co Vim uważa za maksymalną liczbę kolorów, które mogą być wyświetlane przez terminal hosta. Jest ona definiowana według wpisu odpowiadającego $TERM
w terminfo
:
term | t_Co
-----------------+------
xterm | 8
xterm-256color | 256
screen | 8
screen-256color | 256
Kiedy Vim startuje, to pobiera wartość zmiennej TERM
środowiska, odpytuje bazę terminfo
z tą wartością i przechowuje szereg informacji na jej środowisko w kilku zmiennych t_…
, wśród których ... liczba kolorów dostępnych w t_Co
. Biorąc pod uwagę "legalny" typ terminalu (taki, który Vim może wyszukać), Vim zawsze przyjmuje poprawną liczbę kolorów.
Ustawianie t_Co
do 256
pozostawiając term
jej wartości Vima zdefiniowane - lub, bardziej ogólnie, ustawienie t_Co
i/lub term
wartościom, które nie pasują do terminala głównego - nie ma sensu i prawdopodobnie spowoduje problemy, gdy Vim wysyła sygnał, którego nie rozumie terminal i odwrotnie.
Chociaż jest to całkowicie możliwe, zakłócenie działania z t_Co
i term
w Vim jest całkowicie bezużyteczne i może być szkodliwe.
Ponownie, ustaw poprawnie emulatory terminala i multiplekserów terminali.To wszystko, czego potrzebujesz, to naprawdę.
Jeśli skończyć się w terminalu multiplekser lub emulatora terminala, gdzie nie można określić prawidłową TERM
, wtedy i tylko wtedy można zmusić Vima przyjąć 256 kolorów. W tym celu, zmieniając wartość t_Co
jest jedyną rzeczą, która ma sens:
if &term == "screen"
set t_Co=256
endif
Więc ... jeśli może configure każda pojedyncza część:
- emulator terminala:
xterm-256color
- tmux/screen:
screen-256color
- vim: nic
i gotowe.
Jeśli nie kontrolą każdą część można użyć prosty warunkowy w swojej ~/.vimrc
ustawić t_Co
według &term
ale nie zmienia wartości term
.
Ale czy można edytować ~/.vimrc
nie ma powodu, nie można edytować lub ~/.tmux.conf
~/.screenrc
lub ~/.bashrc
lub cokolwiek.
vim
romainl
Masz błędną kolejność to 'vim
Część ze smartfonem to szalona część. – romainl