Descrizione del problema
Se aumento la larghezza di una finestra di Terminal versione 2.3 (309), e poi utilizzo less
(o qualche comando che richiama less
, come man
) in quella finestra, ottengo spesso un output confuso, poiché le linee si avvolgono a 80 caratteri anche se la finestra è più larga e less
tenta di formattare il testo per quella finestra più ampia.
- È lo stesso per OS X 10.8.5% nativo OS X e
less
458 installazioni MacPorts. È anche lo stesso seless
viene richiamato in remoto su un altro host da una sessione ssh interattiva. -
less
stampa la dimensione corretta eresize
non aiuta. Il che non è sorprendente, dal momento cheeval 'resize'
sembra avere la giusta idea di quanto sia ampia la finestra, è solo confuso dal fatto che le linee si rompono troppo presto. - L'output della riga di comando normale (al di fuori di
less
) coprirà l'intera finestra.
Analisi
Questo sembra essere un bug nel modo in cui tazza (modalità di posizionamento del cursore) viene gestita dall'applicazione. Il seguente codice può essere utilizzato per riprodurre il problema:
tput smcup; echo {0..200}; sleep 2; tput rmcup
L'intero problema sembra essere correlato al fatto che ho configurato Terminal per impostare la modalità di emulazione e la variabile di ambiente less
su TERM
invece del xterm-color
predefinito. L'ho fatto in quanto quest'ultimo non è disponibile su diversi host a cui ho eseguito l'accesso, causando lamentele per le applicazioni su tali host.
Soluzioni alternative
Un modo per evitare questo problema sembra essere l'esecuzione del comando
tput -T xterm-256color smcup; tput -T xterm-256color rmcup
dopo ogni modifica delle dimensioni del terminale. Ma è abbastanza fastidioso. Un'altra soluzione alternativa consisterebbe nel cambiare l'emulazione del terminale su xterm-256color
e copiare i dati terminfo in quegli host remoti che non supportano tale valore fuori dalla scatola. Anche questo può essere fastidioso, se vuoi solo dare un'occhiata veloce ad un host remoto.
Domanda principale
Nel complesso mi sembra come se l'emulazione dell'impostazione xterm-256color
non fosse supportata così come si spererebbe. Si tratta di un bug in Terminal.app o ho frainteso qualcosa su come dovrebbe funzionare tutto questo casino?
Qualcuno ha una soluzione più appropriata su come gestire queste incompatibilità?
Dettagli tecnici
Per ulteriori informazioni, ecco l'output di xterm-color
, leggermente troncato rimuovendo alcune definizioni chiave:
comparing xterm-color to xterm-256color.
comparing booleans.
bce: F:T.
ccc: F:T.
mc5i: F:T.
npc: F:T.
comparing numbers.
colors: 8, 256.
ncv: NULL, NULL.
pairs: 64, 32767.
comparing strings.
blink: NULL, '\E[5m'.
cbt: NULL, '\E[Z'.
civis: NULL, '\E[?25l'.
cnorm: NULL, '\E[?12l\E[?25h'.
cvvis: NULL, '\E[?12;25h'.
ech: NULL, '\E[%p1%dX'.
el1: NULL, '\E[1K'.
enacs: '\E)0', NULL.
flash: NULL, '\E[?5h$<100/>\E[?5l'.
hpa: NULL, '\E[%i%p1%dG'.
ich: NULL, '\E[%p1%d@'.
indn: NULL, '\E[%p1%dS'.
initc: NULL, '\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\'.
invis: NULL, '\E[8m'.
is2: '\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8', '\E[!p\E[?3;4l\E[4l\E>'.
kDC: NULL, '\E[3;2~'.
kEND: NULL, '\E[1;2F'.
kHOM: NULL, '\E[1;2H'.
[ ⋮ ]
kri: NULL, '\E[1;2A'.
kslt: '\E[4~', NULL.
mc0: NULL, '\E[i'.
mc4: NULL, '\E[4i'.
mc5: NULL, '\E[5i'.
op: '\E[m', '\E[39;49m'.
rin: NULL, '\E[%p1%dT'.
rmacs: '^O', '\E(B'.
rmam: NULL, '\E[?7l'.
rmcup: '\E[2J\E[?47l\E8', '\E[?1049l'.
rmm: NULL, '\E[?1034l'.
rmso: '\E[m', '\E[27m'.
rmul: '\E[m', '\E[24m'.
rs1: NULL, '\Ec'.
rs2: '\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8', '\E[!p\E[?3;4l\E[4l\E>'.
setab: '\E[4%p1%dm', '\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m'.
setaf: '\E[3%p1%dm', '\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m'.
sgr: NULL, '%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m'.
sgr0: '\E[m', '\E(B\E[m'.
smacs: '^N', '\E(0'.
smam: NULL, '\E[?7h'.
smcup: '\E7\E[?47h', '\E[?1049h'.
smm: NULL, '\E[?1034h'.
vpa: NULL, '\E[%i%p1%dd'.