Perché tmux imposta la variabile TERM su schermo?


19

Citando la tmuxpagina man:

La variabile di ambiente TERM deve essere impostata su "schermo" per tutti i programmi in esecuzione all'interno di tmux. Le nuove finestre avranno automaticamente "TERM = screen" aggiunto al loro ambiente, ma bisogna fare attenzione a non reimpostarlo nei file di avvio della shell.

Questo perché la tmuxsessione può essere collegata a qualsiasi terminale (ad es. Remoto), screenessendo il minimo comune denominatore? Se conosco il mio terminale, posso forzarlo senza risultati imprevisti o alcune funzionalità non supportate si rompono (come lo scorrimento)?

Risposte:


13

Lo fa per sfruttare la descrizione del terminale precedentemente installato per la schermata GNU.

Sia tmux che screen forniscono alle applicazioni (più o meno) le "stesse" descrizioni dei terminali per semplificare la connessione da terminali diversi. I programmi tmux e screen dovrebbero gestire le differenze tra interno (TERM = schermo) ed esterno (xterm, linux, ecc.). Quindi la screendescrizione del terminale è stata installata "ovunque" (di solito da ncurses).

Ci sono alcune differenze:

  • Lo schermo GNU presenta un problema molto vecchio che rappresenta la funzionalità "straordinaria" (che tecnicamente non è una specifica funzionalità terminale ma piuttosto un'astrazione per la comodità delle applicazioni maledizioni). tmux non ha questa limitazione. Ma il TERM = tmux migliorato non è necessariamente "ovunque".
  • Lo schermo GNU ha una funzione per l'uso delle descrizioni dei terminali ibridi. Dato il TERM esterno = xterm e l'esistenza di "screen.xterm", lo sceglierà per il valore TERM interno. (vedi ad esempio il database dei terminali ). tmux non lo fa.

5

A partire da tmux 2.1 , è possibile utilizzare il tmux terminfo :

'default-terminal' è ora un'opzione di sessione. Inoltre, se questo è impostato su 'screen- *', emula cosa fa lo schermo. Se si desidera il corsivo, questo può essere impostato su "tmux" ma è ancora nuovo e non necessariamente supportato su tutte le piattaforme con installazioni ncurses precedenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.