Podstawowym problemem jest to, że mapowanie wykonane screen
między rzeczywistym terminalem (identyfikowanym przez TERM
zmienną środowiskową na zewnątrz screen
) a emulacją wewnątrz screen
jest niepełne.
Jeśli zdarzy ci się go przetestować (używając vttest lub tack ), możesz zauważyć braki
- zabarwienie
- klucze specjalne
Próbując rozwiązać te problemy poprzez ustawienie term
w .screenrc
ma tę wadę, że działa tylko na dany rzeczywisty-terminal, a nie jest przenośny do innych implementacjach terminali. W dokumentacji notatki
Nie zaleca się używania terminu „komenda” do celów innych niż domyślne.
Istnieje inne rozwiązanie (z inną wadą), wykorzystujące tę funkcję z screen
dokumentacji :
Kiedy screen próbuje sam wymyślić nazwę terminala, najpierw szuka wpisu o nazwie screen. termin , gdzie termin jest zawartością $TERM
zmiennej. Jeśli nie ma takiego wpisu, screen próbuje screen
(lub screen-w
, jeśli terminal jest szeroki (132 cols lub więcej)). Jeśli nawet tego wpisu nie można znaleźć, vt100
jest używany jako zamiennik.
ncurses zapewnia kilka przydatnych alternatywnych opisów terminali dla tego przypadku, np. screen.xterm-new , aby naprawić problemy z mapowaniem ekranu. W praktyce używam TERM=xterm-new
, a podczas uruchamiania ekranu uzyskuję użyteczne mapowanie klawiszy funkcyjnych.
Nawiązując do term
ustawień ekranu , podczas testowania możesz zauważyć, że nadal występują problemy z mapowaniem, które są rozwiązane w tych alternatywach. Gdyby możliwe było uzyskanie dokładnego opisu terminala przy użyciu term
, te alternatywy byłyby prostymi aliasami do screen
. Oni nie są.
ncurses nie zapewnia screen.xterm
(sic), ponieważ:
TERM=xterm
jest powszechnie wykorzystywany do emulatorów terminali, które różnią się od xterm; dodanie tego mapowania tylko pogorszyłoby tę sytuację (patrz na przykład: dlaczego nie użyć TERM ustawionego na „xterm”? w FAQ ncurses)
- alternatywna nazwa
screen.xterm
jest mniej prawdopodobna do zainstalowania na zdalnych systemach (patrz komentarz do zmiany od czerwca 2015 r. w bazie danych terminali).
Ogólnie rzecz biorąc, używanie alternatywnych nazw jest ulepszeniem w stosunku do używania term
w twoim .screenrc
: rozwiązuje więcej problemów niż tworzy. Odwrotna jest prawda w przypadku term
ustawienia.
term xterm
do mojego~/.screenrc
pliku naprawiło to dla mnie. Dzięki jeszcze raz!