Come posso ottenere 256 colori sul terminale predefinito su SSH?

5

Un sacco di domande simili, ma non riesco a trovare nulla che corrisponda esattamente.

Sto usando il terminale predefinito (in Yosemite) in SSH in una VM. Il terminale della VM è impostato per utilizzare correttamente TERM=xterm-256color , e 256 colori funzionano localmente sulla VM con le stesse impostazioni del terminale, ma i colori non lo raggiungeranno tramite la connessione SSH. Qualcuno ha idea di cosa serve per far sì che Terminal ritiri l'output come normali sequenze a 256 colori?

Tutto quello che voglio qui è capire perché i codici di escape a 256 colori vengono ignorati in Terminal.app quando arrivano su una connessione SSH. E, naturalmente, per farlo smettere di ignorare le sequenze di fuga.

Probabilmente informazioni eccessive:

La VM esegue Windows 7, la shell è bash su cygwin, il server ssh è bitvise.

Sto esaminando 3 casi - localmente su bash OSX nativo in Terminal.app, localmente nella bash VM in MinTTY, e nella VM tramite SSH in Terminal.app.

infocmp xterm-256color produce risultati identici in tutti e tre i casi e tput colors riporta 256 in tutti i casi.

(tput setaf 200 && echo pink) > pink produce i risultati identici in tutti e tre i casi:

$ hexdump -C pink
00000000  1b 5b 33 38 3b 35 3b 32  30 30 6d 70 69 6e 6b 0a  |.[38;5;200mpink.|
00000010

cat pink in Terminal.app (localmente, non SSH out ovunque) o in MinTTY sulla VM stampa il testo rosa previsto. cat pink in Terminal.app mentre SSHed nella VM produce il testo grigio chiaro predefinito.

La connessione SSH è configurata con EscapeChar none , quindi i dati dovrebbero essere puliti in modo binario (cambiando questa impostazione non ha fatto differenza).

Le preferenze in Terminal.app sono impostate come xterm-256color , anche se non credo che dovrebbero fare alcuna differenza.

Qualche idea su ciò che sta mangiando la sequenza di escape fallirà? Non sto usando altro che plain ol bash per shell, no screen o tmux (a meno che Terminal.app lo usi automaticamente / internamente).

    
posta danwyand 05.11.2014 - 23:42
fonte

2 risposte

2

Bah ... la parte colpevole era il server SSH. Non so perché e non è riuscito a trovare un posto per disabilitare il comportamento (tranne che per andare al terminale completamente stupido che aveva i suoi problemi), ma la semplice vecchia openssh ha portato a termine il lavoro.

    
risposta data 25.11.2014 - 21:24
fonte
0

Solo terminale supporta defaqltly 16 colori. Ti consigliamo di utilizzare un client di terminale diverso, ad esempio iTerm2 .

Un altro modo per utilizzare questo programma per fare in modo che il terminale mostri tutti i colori.

[In iTerm 2] The recommended way is to set your terminal type to xterm-256color in Preferences->Profiles->Terminal->Report Terminal Type. You may also need to put set background=light or set background=dark in your .vimrc. Another technique is described by Kevin Coylar in this blog post on Pretty Vim Color Schemes in iTerm2.

    
risposta data 16.11.2014 - 16:21
fonte

Leggi altre domande sui tag