W czystej instalacji Ubuntu 12.10 domyślny terminal gnome zgłasza $ TERM jako xterm, gdzie tak naprawdę powinien zgłaszać xterm-256color. Jak najlepiej to zmienić? Unikam umieszczania tego w moim .bashrc, ponieważ to tylko prosi o kłopoty.
gnome-terminal
Freddy
źródło
źródło
xterm
jest źle, ponieważ większość aplikacji nie będzie działać w trybie 256 kolorów, chyba że jest toxterm-256color
lubscreen-256color
(najważniejsze są dla mnie vim i tmux). Podobnie jak @Freddy, wolałbym nie ustawiać ich w moim profilu powłoki, ponieważ być może łączę się z innego typu terminala niż SSH, i ponieważ tak naprawdę ustawieniem tego jest emulator terminala. Dziwi mnie, że terminal gnome nie zapewnia wielu emulacji.xterm-256colors
.Odpowiedzi:
Zalecono, aby nie zmieniać skryptów uruchamiania, szczególnie
~/.bashrc
. Wszelkie „terminal wykrywanie” za pomocą prądu$TERM
lub$COLORTERM
w~/.profile
to jedynie przypuszczenie, a może, jak pan powiedział, powodować problemy podczas korzystania z innych terminali (powiedzmy, szpachlówki lub xterm). Emulator terminala powinien zostać ustawiony$TERM
i nie należy go zmieniać z poziomu powłoki.Terminal Gnome, AFAIK, nie oferuje konfiguracji do zmiany
TERM
, ale pozwala zmienić polecenie uruchamiania, i to wszystko, czego potrzebujesz. Oto sztuczka:Następnie użyj następującego polecenia:
Po prostu zamień
/bin/bash
na preferowaną powłokę, jeśli jest inna. I nie, nie możesz użyć"$SHELL"
w tym wierszu automatycznego wykrywania powłoki;) Musisz go na stałe zakodowaćźródło
Do połączenia z terminalem, który nie jest w stanie wykonać 256 kolorów.
O wiele lepiej byłoby wykryć terminal konkretnie
$COLORTERM
. Poszukaj gnome-terminal, xfce4-terminal itp., A następnie ustaw$TERM
zmienną naxterm-256color
.Robię to z:
źródło
COLORTERM
już się nie ustawia .COLORTERM
, możesz na nich polegaćVTE_VERSION
.Chociaż prawdą jest, że terminfo ma xterm + 256color (
/usr/share/terminfo/x/xterm+256color
), termcap ma tylko xterm (/usr/share/vte/termcap/xterm
), więc zmiana$TERM
nie powinna być wskazana.W każdym razie
$TERM
nie jest ustawiony przez gnome-terminal, ale przez vte. Domyślną wartość tej zmiennej środowiskowej można zmienić w czasie kompilacji (dając opcję skryptowi konfiguracji) lub przez wywołanievte_pty_set_term()
funkcji. Patrząc na źródła gnome-terminal, widzę, żevte_pty_set_term
nigdy nie jest wywoływany, więc mogę powiedzieć, że nie ma możliwości modyfikacji$TERM
przez edycję ustawień gnome-terminal.Co musisz zrobić, to umieścić następujący fragment kodu w swoim
~/.profile
:źródło
==
jest składnią opartą tylko na bashu, nie używaj jej w przypadku fragmentów przeznaczonych do pozyskiwaniash
(co ma miejsce~/.profile
w DE). Również składnia „x $ ..” nie jest potrzebna, ponieważ poprawnie cytujesz rozszerzenie var.