Wprowadzenie
Moje pytanie wynika z konieczności zrozumienia, dlaczego mam teraz (po wielu próbach) Terminal i tmux obsługujący 256 kolorów i tput colors
mówiący, że jest ich tylko 8.
tło
Zacznijmy od początku.
Używam Ubuntu box, Guake , tmux , Vim i uwielbiam motyw Solarized . Wyglądały dość okropnie, więc postanowiłem włączyć obsługę 256 kolorów i trochę się pobawić.
Zobaczmy, co się stanie z moim terminalem . tput colors
mówi, że jest 8 kolorów. Osobiście ustawiłem je na fioletowe, po lewej stronie i oczywiście po prawej mamy 2 różne odcienie niebieskiego. $TERM
mówi xterm
. (Aby mieć kolorowe ls
ja eval
to w moim .bashrc
.)
Vim również wygląda dobrze, mimo że nazywam go 256
flagą w środowisku, w którym 256 kolorów nie jest obsługiwanych.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Jedynym facetem, który narzeka na zmniejszoną przestrzeń kolorów, jest tmux . Wywołanie tmux
zapewnia „złe” oczekiwane wyniki.
Ale dzwonienie tmux
z -2
flagą sprawia, że wszystko działa dobrze, magicznie .
Teraz jedyne, co rozumiem, -2
to odpowiednik export TERM=screen-256color
( źródła ).
Guake zachowuje się analogicznie jak Terminal i obaj odpowiadają xterm
na pytanie echo $TERM
.
Pytanie
Zasadniczo, czy ktoś rozumie, dlaczego wszystko działa, nawet jeśli nie?
- Czy jestem sadystyczny, że narzekam, dlaczego coś działa? Może.
- Czy jest lepszy powód? Jasne: Chciałbym naprawić wygląd innych pudeł Ubuntu w moim biurze i chciałbym zrozumieć, dlaczego coś działa, czy nie.
Dodatkowe eksperymenty
Uruchomienie tego skryptu (nieco zmodyfikowanego) na moim xterm
zapewnia następujący wynik: 256 kolorów, ale tylko 16 jest wyświetlanych poprawnie.
Następnie, zmieniając profil terminala, zmieniają się również te 16 kolorów.
Kolejne testy są następujące.
Od lewej do prawej, od góry do dołu, mamy motyw kolorów Solarized , dircolor
ansi-dark
a 256dark
następnie domyślny schemat kolorów ( Tango ) dircolor
ansi-dark
i 256dark
.
Obserwacja : teoretycznie dircolor
ansi-dark
na solarized kolorystyka powinna mieć Dopasuj bacznie dircolor
256dark
. Nie dzieje się tak wyraźnie w przypadku określonych plików na liście. Zamiast tego dzieje się tak, gdy w katalogu roboczym znajdują się foldery , pliki tekstowe i dowiązania symboliczne . Wniosek : nie zwracano zbytniej uwagi na kodowanie 256dark
kolorów.
Wstępne wnioski
xterm
obsługuje 256 kolorów, pomimo tego tput colors
, co mówi. Programy mogą odwoływać się do ansi
palety (konfigurowalnej przez użytkownika) lub definiować ich kolory, wybierając spośród 256 kolorów.
tput colors
to niewiarygodny test. Czy mógłbyś sprawdzić moje wstępne wnioski ?
tput colors
może zwrócić tylko jedną wartość, aw terminalach obsługujących dowolny z 28,16,88 lub 256 kolorów zwracana jest tylko pierwsza wartość (w twoim przypadku 8). Aby uzyskać prawdziwą wartość, użyj skryptu z mojego ostatniego komentarza. Co to zwraca?