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 colorsmó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 colorsmó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. $TERMmówi xterm. (Aby mieć kolorowe lsja eval to w moim .bashrc.)

Vim również wygląda dobrze, mimo że nazywam go 256flagą 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 tmuxzapewnia „złe” oczekiwane wyniki.

Ale dzwonienie tmuxz -2flagą sprawia, że wszystko działa dobrze, magicznie .

Teraz jedyne, co rozumiem, -2to odpowiednik export TERM=screen-256color( źródła ).
Guake zachowuje się analogicznie jak Terminal i obaj odpowiadają xtermna 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 xtermzapewnia 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-darka 256darknastępnie domyślny schemat kolorów ( Tango ) dircolor ansi-darki 256dark.

Obserwacja : teoretycznie dircolor ansi-darkna 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 256darkkolorów.
Wstępne wnioski
xtermobsługuje 256 kolorów, pomimo tego tput colors, co mówi. Programy mogą odwoływać się do ansipalety (konfigurowalnej przez użytkownika) lub definiować ich kolory, wybierając spośród 256 kolorów.
tput colorsto niewiarygodny test. Czy mógłbyś sprawdzić moje wstępne wnioski ?
tput colorsmoż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?
proszę kliknąć prawym przyciskiem myszy / wyświetlić obraz, aby sprawdzić w pełnej rozdzielczości
mapa referencyjna dircolors nasłonecznionych „zdegradowanych”