2012-04-01 14 views
7

Ho giocato con combinazioni di colori per il terminale VIM e ho trovato qualcosa di fastidiosamente frustrante che non sono stato in grado di risolvere fino ad ora.Perché la tavolozza a 256 colori cambia nel terminale VIM su OS X?

Mi aspetto che i 16 colori di sistema vengano modificati. Sono ovviamente configurabili. Per questo motivo, ho tentato di utilizzare la tavolozza a 256 colori per costruire una combinazione di colori VIM che sarebbe stata la stessa indipendentemente dalla tavolozza dei colori del sistema 16 (configurabile) del terminale.

Ho usato solo colori dalla tavolozza di colori 256 per tutto, incluso lo sfondo. Tuttavia, ho notato che se apro i terminali con colori di sfondo e testo diversi specificati per i terminali, gli schemi di colori VIM appaiono abbastanza diversi nei due terminali.

non vedo un comportamento simile su Ubuntu anche quando i terminali sono dotati di diverse tavolozze di sfondo, in primo piano, e il colore di sistema.

Accetterò felicemente una risposta che spieghi perché ciò accade.

sarò estasiato se qualcuno mi può dire un modo per aggirare questo al di là di creazione di un terminale specifico per ogni set di impostazioni di colore che voglio usare.

+1

Giusto per essere chiari, si utilizza 't_Co = 256' e' TERM = xterm-256color' destra? –

+0

Sì, questo è stato risolto molto tempo fa. :) – toadjamb

+0

potrebbe essere la regolazione automatica come descritto qui: http://apple.stackexchange.com/questions/29487/is-it-possible-to-disable-terminals-automatic-tweaking-of-colors-in- leone –

risposta

4

Per impostazione predefinita, i terminali ANSI sono 16 dispositivi a colori e gli schemi di colori Vim che funzionano in gvim non funzioneranno correttamente in un terminale.

Alcuni terminali sono in grado di 88 o 256 colori. Puoi dirlo a Vim impostando t_Co. Ovviamente, 256 colori sono ancora meno di RGB completo che si ha in gvim.

C'è un pacchetto per vim chiamato CSApprox sviluppato da Matt Wozniski. Ti consente di utilizzare le combinazioni di colori gvim con colori approssimativi.

Questo è quello che uso io stesso.

CSApprox include un file di documentazione che spiega tutto meglio di me qui.

URL: http://www.vim.org/scripts/script.php?script_id=2390

Buona fortuna.

P.S. sulla tua domanda Tuttavia, ho notato che se apro i terminali con colori di sfondo e testo diversi specificati per i terminali, gli schemi di colori VIM appaiono abbastanza diversi nei due terminali.

Sembra che il terminale OSX non separi la definizione del colore dalla tavolozza xterm a 256 colori; cioè che manipolando le sue impostazioni si sta scherzando con la tavolozza o qualcosa del genere.

terminali dovrebbero probabilmente essere mantenendo la roba configurabili dall'utente 16 colori separati dalla tavolozza a 256 colori.

+1

Un altro utile bit di informazioni, su dove l'estensione ANSI per il supporto di più colori proviene da: http: // www.mudpedia.org/wiki/Xterm_256_colors – Kaz

+0

Sono a conoscenza di CSApprox da molto tempo, ma ci sono due problemi con l'utilizzo. Uno è che io uso solo il terminale VIM e non ho interesse per GVim. Il secondo è che sono molto esigente riguardo ai miei colori e vorrei sceglierli in modo molto specifico. – toadjamb

+0

'CSApprox' non è per gvim. È esattamente per gli utenti che non utilizzano gvim ma i terminali. È solo che gvim è il modello di riferimento per come devono essere visualizzati gli schemi di colori. Se sei schizzinoso riguardo ai colori (preferisco scegliere ognuno dei 24 bit RGB), allora penso che tu sia sfortunato a farlo tramite Vim. È necessario modificare la tavolozza del terminale attraverso il suo meccanismo delle preferenze. – Kaz

0

Per favore, invia schermate in modo che possiamo vedere ciò che vedi. È difficile parlare di colori senza vederli o confrontando i loro valori numerici.

Beh, io sono ancora in 10.6.8 quindi non ho mai goduto la capacità di Terminal.app di visualizzare 256 colori.

Ma, AFAIK, i suoi 16 colori predefiniti non sono presi dalla tavolozza X11.Probabilmente sono hardcoded da qualche parte e i loro valori sono comunque configurabili dall'utente. Per questo motivo, non ho idea del perché cambiare il valore predefinito Red in qualsiasi cosa cambierebbe l'aspetto del tuo Vim colorscheme.

Tuttavia, Terminal.app (come la maggior parte degli altri emulatori di terminale) consente di modificare i valori di Background, Text, Bold, Selection e Cursor. A seconda di come sono scritti i tuoi colori, alcune di queste impostazioni potrebbero sovrascrivere parti del tuo schema colori, Background, in particolare.

Ho avuto il mio background di Terminal.app con lo sfondo del mio Vim colorscheme per molto tempo con ottimi risultati. Bene, almeno per un emulatore di terminale a 16 colori.

0

La modalità a 256 colori è ancora solo una tavolozza indicizzata, la stessa delle modalità 8 e 16 colori. L'applicazione seleziona semplicemente un colore per indice da una tavolozza e spetta al terminale decidere quale colore sarà effettivamente.

Che due terminali diversi possano scegliere gli stessi colori per questi indici potrebbe essere il fatto che all'interno del cubo RGB a 216 colori ci sono 6 livelli di ciascun componente, quindi il "naturale" modo ovvio per assegnare quei colori sarebbe selezionarne uno dall'elenco (0, 0x33, 0x66, 0x99, 0xcc, 0xff). Immagino che la maggior parte dei terminali lo farà, e quindi darà gli stessi colori agli stessi indici.

Se i due terminali differiscono è semplicemente un'indicazione che stanno usando un altro metodo per selezionare i loro colori reali.

+0

La tabella a 256 colori predefinita dovrebbe essere essenzialmente la stessa su tutti gli emulatori di terminale. I valori esatti dei colori possono variare, ma esiste una descrizione "standard" del set di colori predefinito. La calibrazione del colore può anche produrre leggere variazioni. –

2

Il terminale regola dinamicamente alcuni valori di colore per garantire una quantità minima di contrasto con il colore di sfondo. Forse è quello che stai vedendo.

Si prega di allegare uno screenshot che mostra i due diversi schemi di colori. Un buon script per visualizzare i colori disponibili è 256colors2.pl.

0

Se si utilizza iTerm2, potrebbe essere necessario modificare il tipo di terminale segnalato.

nelle preferenze iTerm2> Profilo> Terminale> Tipo di rapporto Terminal, impostato su xterm-256color

0

In Terminal.app alias di Apple Terminal, i colori cambieranno se il colore di sfondo non è esplicitamente impostata pure.

Quindi, con la combinazione di colori è necessario impostare il colore di sfondo predefinito utilizzando il gruppo Normal colore, ad es .:

hi Normal ctermfg=188 ctermbg=234 

e quindi non si dovrebbe vedere ulteriori modifiche ai colori.

Nota: ho notato solo il primo piano essere colpiti presumibilmente in modo da non perdere nessuna uscita importante;)

Problemi correlati