Quale terminale è l'emulazione di Mountain Lion Terminal?

3

Recentemente sono migrato dal 10.6 al 10.8. Io uso Terminal per connettermi a vari box linux dove la variabile TERM è osservata come xterm-color . Questo sembra essere coerente con l'impostazione 10.6 di TERM.

Tuttavia, dal momento che l'aggiornamento ho riscontrato problemi con le mie sessioni Terminal se / quando li ridimensiono a qualcosa di più ampio di 80x24. Ciò che normalmente sarebbero le lunghe righe di testo sembrano avvolgere a 80 colonne fino a di nuovo ridimensionamento, a quel punto viene visualizzato correttamente. Cioè, è come se la larghezza fosse bloccata nell'ultima dimensione (avvolgendo tutto alla larghezza precedente) fino a quando non viene effettuato un ridimensionamento dopo aver visualizzato qualcosa che si aspetta una larghezza maggiore.

Questo tipo di sentirsi come la [n] curses entry per xterm-color è stata modificata (non lo ha fatto) o che terminal non sta davvero emulando un dispositivo xterm-color . Il comportamento è diverso (forse meglio - sto ancora valutando) se si specifica un xterm semplice.

Esiste un'impostazione migliore per TERM quando si utilizza Terminal di Mountain Lion?

    
posta jhfrontz 15.01.2013 - 22:51
fonte

1 risposta

7

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.

    
risposta data 16.01.2013 - 14:53
fonte

Leggi altre domande sui tag