2012-04-03 23 views
14

Natknąłem się zarówno na xterm-color, jak i na xterm-256color jako opcje podczas próby ustawienia mojego programu terminala na kolor - tzn. Można ustawić zmienną środowiskową TERM na jedną.Jaka jest różnica między xterm-color i xterm-256color?

Zastanawiałem się, czy ktoś może opisać różnicę między tymi dwoma?

Szukałem dokumentacji na moim serwerze Ubuntu, jak również na moim Macu, ale nie znalazłem żadnych. Byłem w stanie znaleźć różne pliki binarne w/usr/share/terminfo

+0

Możesz samemu określić [czy twój terminal obsługuje 256 kolorów] (https://askubuntu.com/questions/821157/print-a-256-color-test-pattern-in-the-terminal). –

Odpowiedz

30

xterm-256color opisuje Xterm z obsługą 256 kolorów włączonych. xterm-color opisuje starszą gałąź Xterma, która obsługuje szesnaście kolorów. xterm-color nie jest zalecany, ponieważ opisuje wariant Xterma, który jest mniej funkcjonalny i którego prawdopodobnie nie będziesz używać. Zwykle będziesz chciał użyć xterm, xterm-16color lub xterm-256color.

W szczególności xterm-256color jest domyślnym dla Terminal wychodząc z Mac OS X 10.7 Lion, z następnym najlepszym zalecane wartości bycia xterm-16color lub xterm (które tylko opisuje wsparcie dla ośmiu kolorach ANSI). Przed 10.7, xterm-color był domyślny, ponieważ Terminal nie obsługiwał niektórych krytycznych funkcji opisanych przez zalecane wartości terminfo Xterm, np. Background Color Erase (BCE), nowoczesne kody przełączania głównych/alternatywnych ekranów, 256 kolorów.

Czasami ludzie jawnie ustawiają TERM na xterm-color (w przeciwieństwie do zalecanych wartości Xterm) w celu wyłączenia funkcji lub obejścia niezgodności między dostępnymi wartościami terminfo na danym komputerze i używanym emulatorem terminala.

Zauważ, że technicznie terminal powinien mieć swoje własne wartości up-to-date terminfo, które opisują dokładnie, które to cechy wspiera, zamiast przy użyciu wartości dla xterm, ale:

  1. Nie ma jednego, że to się do tej pory. nsterm reprezentuje przodek terminala z NeXTSTEP. Ktoś najwyraźniej ostatnio zaktualizował nsterm (kiedyś w ciągu ostatnich kilku lat), ale nie wiem, czy trafił on do dystrybucji ncurses, i może nie być całkowicie aktualny z Terminalem w 10.7.
  2. Wiele programów i skryptów dostosowywania powłoki wyraźnie sprawdza, czy $TERM rozpoczyna się od (lub jest równy) . Tak więc niektórzy użytkownicy nadal będą musieli wiedzieć o używaniu zalecanych wartości Xterm z Terminalem w celu zapewnienia zgodności z tymi.

Jeśli nie znasz się na systemie terminfo, spójrz na stronę podręcznika x-man-page: // 5/terminfo. Możesz również użyć polecenia infocmp, aby wyświetlić bieżące ustawienia terminfo lub porównać dwa różne, np., infocmp xterm-color xterm-256color pokaże wszystkie różnice między tymi dwoma.

5

Wygląda na to, że xterm-256color to Terminal.app na OS/X. Różnice nie są małe - infocmp'd xterm-color i xterm-256color na pudełku Ubuntu i trochę je znormalizowałem i dostałem sporo różnic. Mogę nawet powiedzieć, że xterm-256color nie jest już tak naprawdę xtermem.

Zwykle, gdy używasz konkretnego emulatora terminala, musisz "po prostu wiedzieć", który wpis terminfo działa najlepiej z nim. Są pasującą parą, chociaż czasami można, np. Użyć terminfo vt100 na terminalu vt220.

Po stronie plus prawie wszystko jest dziś kompatybilne z vt100.

+0

"Mogę nawet powiedzieć, że xterm-256color nie jest już tak naprawdę xtermem." Masz na myśli nie * tylko * Xterm, ponieważ kilka popularnych emulatorów terminali obsługuje wiele takich samych funkcji? –