Il problema di fondo è che la mappatura effettuata screen
tra il terminale effettivo (identificato dalla TERM
variabile di ambiente all'esterno screen
) e l'emulazione all'interno screen
è incompleta.
Se ti capita di testarlo (usando vttest o tack ), potresti notare carenze per
Il tentativo di risolvere questi problemi modificando term
in .screenrc
presenta l'inconveniente che funziona solo per una data effettiva-terminale, e non è portabile su altre implementazioni terminali. Le note di documentazione
L'uso del termine comando è sconsigliato per scopi non predefiniti.
Esiste un'altra soluzione (con un diverso svantaggio), utilizzando questa funzionalità dalla screen
documentazione :
Quando lo schermo cerca di capire da solo il nome di un terminale, cerca innanzitutto una voce chiamata schermo. termine , dove termine è il contenuto della $TERM
variabile. Se tale voce non esiste, lo schermo prova screen
(o screen-w
, se il terminale è largo (132 cols o più)). Se anche questa voce non può essere trovata, vt100
viene utilizzata come sostituto.
ncurses fornisce diverse utili descrizioni dei terminali alternativi per questo caso, ad esempio screen.xterm-new , per riparare i problemi nella mappatura dello schermo. In pratica, utilizzo TERM=xterm-new
e, quando eseguo lo schermo, ottengo una mappatura utilizzabile dei tasti funzione.
Facendo riferimento alle term
impostazioni dello schermo , nei test potresti notare che ci sono ancora problemi con la mappatura, che sono affrontati in queste alternative. Se fosse possibile ottenere una descrizione accurata del terminale utilizzando term
, queste alternative sarebbero semplici alias screen
. Non sono.
ncurses non fornisce screen.xterm
(sic) perché:
TERM=xterm
è ampiamente utilizzato per gli emulatori terminali che differiscono da xterm; l'aggiunta di questa mappatura aggraverebbe solo quella situazione (vedi ad esempio Perché non usare semplicemente TERM impostato su "xterm"? nelle FAQ di ncurses)
- il nome alternativo ha
screen.xterm
meno probabilità di essere installato su sistemi remoti (vedere il commento di modifica da giugno 2015 nel database del terminale).
Nel complesso, tuttavia, l'uso di nomi alternativi è un miglioramento rispetto all'uso term
nel tuo .screenrc
: risolve più problemi di quanti ne crei. Il contrario è vero per l' term
impostazione.
term xterm
al mio~/.screenrc
file l'ha risolto per me. Grazie ancora!