Come molti emulatori di terminali, Terminal emula la maggior parte di un VT100 oltre ad alcune funzionalità dai terminali più recenti e alcune estensioni comuni da xterm e altri emulatori.
Non esiste un file terminfo che corrisponda esattamente a Terminal, ma la corrispondenza più vicina era xterm-color
, che rappresenta una propaggine più vecchia di xterm. Tuttavia, nelle versioni recenti Terminal è più pienamente compatibile con xterm e xterm-256color
è il nuovo valore predefinito per la variabile di ambiente TERM
.
In Preferenze > Impostazioni > [profilo] > Avanzate > Emulazione c'è un menu popup Dichiara terminale come: che imposta il valore di TERM
(e questo è tutto ciò che fa, non altera le funzionalità supportate da Terminal). Se utilizzi un Mac che hai aggiornato da una versione precedente del sistema operativo, potresti dover / dover aggiornare l'impostazione in modo che corrisponda al nuovo valore predefinito consigliato se è ancora impostato su xterm-color
. L'utilizzo di xterm-color
non è raccomandato ed è possibile che causi problemi perché non è il più simile possibile al set di funzionalità corrente di Terminal.
Nonostante le installazioni di ncurses includano tutti i file terminfo, alcune distribuzioni Linux non lo fanno, e in particolare alcune di esse omettono xterm-256color
. Se questo è il caso, vedrai i programmi lamentarsi in vari modi di non riuscire a trovarlo, e la soluzione è installare l'intero set di file terminfo, o almeno tutti quelli di xterm.
Se xterm-256color
non è disponibile, la cosa migliore successiva è xterm-16color
, seguita da xterm
. Questi tre sono compatibili e rappresentano la versione corrente di xterm con numeri decrescenti di colori supportati ( xterm
dichiara solo gli otto colori ANSI di base, anche se molti programmi semplicemente ignorano quello e presumono che 16 siano supportati, ma xterm-16color
è quello scegliere se si desidera dichiarare esplicitamente il supporto per sedici colori).
È difficile dire esattamente quale potrebbe essere la causa del problema che stai vedendo, ma la prima cosa da provare è eseguire il comando infocmp
sull'host remoto per vedere cosa dice. Questo ti dirà quale terminfo si aspetta e se è stato trovato.
Se si tratta di un problema generico ncurses o terminfo, è probabile che si verifichi con altri programmi, come vim. Ad esempio, potresti provare a eseguire vim o meno, per confrontare i comportamenti. Se ti senti motivato, potresti eseguire vttest link sull'host remoto e verificare che Terminal risponda in modo appropriato ai test per il disegno attributi di testo, ridimensionamento del display e passaggio a / dallo schermo alternativo.
Quando ridimensionate una finestra di terminale, il programma terminale notifica al dispositivo tty, che invia un segnale SIGWINCH
ai processi ad esso collegati. I programmi sono responsabili della risposta al segnale in modo appropriato. Una cosa da verificare è se le variabili LINES
e COLUMNS
vengono aggiornate in bash quando si ridimensiona la finestra del terminale. Se funziona, il meccanismo del segnale si sta comportando correttamente.
Un'altra possibilità è che il programma non passi correttamente da / alla schermata alternativa (il che potrebbe essere causato dall'aver selezionato un terminfo incompatibile). Puoi controllare Visualizza > Nascondi / Mostra schermo alternativo per vedere quale schermata è attualmente attiva. Se mostra la schermata sbagliata, potresti provare a cambiarla manualmente con la voce di menu e vedere se questo risolve il problema.