tmux, Vim e Solarized


19

premesse

Sfogliando tmux , Vim e Solarized posso trovare molte lamentele su 256 colori e "esperienza utente". Beh, sto avendo il contrario "problema", vale a dire Vim funziona bene con un pieno solarizzata tema solo in tmux .

sfondo

Ho modificato e sintonizzato per un po 'ora con il mio terminale Ubuntu e la combinazione di colori di Guake e sono quasi arrivato alla perfezione che si raggiunge quando uso tmux , che a sua volta significa sempre. Sto provando ora a capire perché questo sta accadendo.

Qui sotto ci sono due Terminali, uno a sinistra esegue solo Vim (mostra la corrente .vimrc) mentre l'altro esegue Vim all'interno di una sessione di tmux . Come puoi vedere chiaramente, solo nella sessione di tmux i caratteri sono in grassetto, che credo sia corretto (o no?).

inserisci qui la descrizione dell'immagine

Domanda

Perché tmux consente caratteri in grassetto mentre il terminale, dove tmux è in esecuzione, non lo fa? È un bug o una funzionalità?


Qual è l'output di echo $TERMin e out of tmux?
Jasonwryan,

tmux dice screenmentre il terminale dice xterm:)
Atcold

@jasonwryan ha letto l'altra domanda del PO qui e la risposta di Gilles a una simile qui . Apparentemente $TERMnon è così rilevante.
terdon

@terdon in questo caso è materiale: tmux richiede che il termine sia impostato su schermo (o una variante) e che xterm sia, per impostazione predefinita, un termine di 8 colori. Ecco perché l'OP vede la differenza.
Jasonwryan,

Metti il xterm*termName: xterm-256colortuo ~/.Xresourcese vedi se questo fa la differenza ...
Jasonwryan,

Risposte:


22

Risposta breve

È un bug.

Risposta completa

Sembra che la visualizzazione "corretta" è quello a sinistra, dove il carattere in grassetto sono non reso. Per quello che ho potuto capire ( ecco il riferimento) l'attributo grassetto è stato utilizzato, in origine, per impostare la versione evidenziata degli 8 colori di base.

Storicamente, c'è stata una corrispondenza individuale tra le versioni in grassetto degli 8 colori ANSI predefiniti e le versioni luminose degli 8 colori predefiniti. In passato, quando un programma a colori richiedeva la visualizzazione di un testo in grassetto, era probabilmente più semplice per gli emulatori terminali visualizzare una versione più luminosa di qualsiasi colore fosse il testo (e aspettarsi che l'utente lo interpretasse in grassetto) piuttosto che visualizzare un carattere tipografico con un peso audace.

Fondamentalmente, ciò che sta accadendo qui è che, al fine di utilizzare l'intera palette Solarized , con l' arancione , il viola e tutti i livelli di grigio , i colori sono chiamati con l' attributo grassetto , che a sua volta si riferisce agli 8 colori alternativi del Tavolozza ANSI.

Terminal lo capisce correttamente e mostra l' arancione e il commento in grigio nella composizione normale , mentre tmux aggiunge un carattere in grassetto non necessario . In conclusione, il lato sinistro è corretto, mentre quello destro non lo è.

Domanda 2

C'è un modo per disabilitare il rendering in grassetto di tmux ?
Devo ancora fare qualche ricerca al riguardo e aggiornerò questa risposta non appena troverò qualcosa.

Risposta 2

E qui abbiamo la soluzione! :)

Per far sì che tmux si comporti correttamente, dobbiamo chiamarlo dicendogli che siamo in un ambiente abilitato a 256 colori.

TERM=xterm-256color /usr/bin/tmux

Per comodità, potremmo aliasfarlo (cioè aggiungere alias tmux="<the line above>"al tuo ~/.bashrc).

tmux interpreta correttamente i colori non grassetto "grassetto-alternativo"

Chiamare tmuxas tmux -2, per forzare l' esecuzione di tmux con il supporto di 256 colori (invece di ridefinire la TERMvariabile ambientale) non consentirà una corretta interpretazione degli 8 colori "alternativi in ​​grassetto" (ovvero la variante più luminosa risulterà anche con una composizione in grassetto). Pertanto, consiglio vivamente di utilizzare la soluzione qui sopra per avere sia corretta interpretazione 256 colori e non colori "bold grassetto-alternative".


tanto amore amico !!
shxfee,
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.