2012-03-23 10 views
43

Ho scaricato molti schemi di colori vim e li ho provati, ma molti di loro non sembrano lo screenshot ufficiale.Perché la maggior parte degli schemi di colori di Vim non sembra bella come lo screenshot quando li uso?

Per esempio, proprio schema colore di vim - desert dovrebbe assomigliare a questa: desert color schema

Ma nel mio vim, molti colori non visualizzerà, ad esempio lo sfondo. my vim color display

Ma alcuni schemi di colori funzionano correttamente.

Perché è quello?

In: Modifica-> Profilo Preferenze -> Colori, seleziono il "Usa i colori di sistema tema"

+0

Anche io ho riscontrato questo problema e sto utilizzando la versione a 256 colori del terminale. – puk

+2

La migliore risposta che ho trovato: http://stackoverflow.com/a/15378816/357774. In sostanza, non rovinare con 't_Co' nel tuo .vimrc, metti questa riga nel tuo .bashrc:' [[-n "$ DISPLAY" && "$ TERM" = "xterm"]] && export TERM = xterm- 256 colori ' – Noyo

+16

@moderators: come è questa domanda fuori tema su un sito di programmazione? Vim è uno strumento di produttività estremamente importante, come lo è tmux, e quando usato insieme la questione dei colori che funzionano correttamente in modalità testo terminale è molto importante. La dimostrazione è che questa domanda appare a pagina 1 di una ricerca google "256 colori in vim". –

risposta

53

Molti colori sono progettati per 256 colori, che è significativamente migliore di un terminale standard a 8 colori. Per farlo funzionare, è necessario impostare $TERM su un terminale a 256 colori come xterm-256color.

Se si dispone di un terminale in grado 256 colori (guarda come si fa dal vostro screenshot se questo è Gnome Terminal), impostare il $TERM-xterm-256color e attivare 256 colori nel vostro vimrc con qualcosa di simile:

if $TERM == "xterm-256color" 
    set t_Co=256 
endif 

Vim wiki has some tips per l'impostazione del $TERM corretto per diversi emulatori di terminale. Il modo più semplice per testare il tutto in modo rapido è quello di fare

TERM=xterm-256color vim 

Questo non farà colorschemes progettati per GUI vim pienamente compatibile con il terminale Vim, ma farà a 256 colori colorschemes lavorano, e questi sono un miglioramento gigante sopra la colori standard 8 colori.

+0

cambiando il mio termine con xterm-256color ho risolto tutti i miei problemi quando avevo lo stesso problema di @ tanky-woo – arajek

+2

Questo mi aveva fatto infastidire per anni! Finalmente ho trovato la causa principale! Vorrei aver cercato questo argomento prima. –

+12

Risposta più approfondita: http://stackoverflow.com/a/15378816/357774. In sostanza, non rovinare con 't_Co' nel tuo .vimrc, metti questa riga nel tuo .bashrc:' [[-n "$ DISPLAY" && "$ TERM" = "xterm"]] && export TERM = xterm- 256 colori ' – Noyo

15

La prima schermata è GVim, non è terminale Vim. I terminali sono molto limitati quando si tratta di supporto dei colori. E GVim può utilizzare lo spazio RGB completo.

+0

Bella cattura! Sei corretto al 100%, non me ne sono accorto quando ho letto la domanda :) – Shane

6

Le altre risposte qui sono buone; Ho anche trovato this page molto utile per modificare e capire il perché e il come degli ambienti di colore per Vim.

+0

Questo link è davvero utile. Grazie! – jacderida

20

Su sistemi * nix, la scopo di impostare la variabile d'ambiente $ TERM a una voce terminfo che descrive la capacità del terminale, compreso il numero di colori supportati è quello di pubblicizzare queste capacità per le applicazioni che verranno eseguite nel tuo terminale.

In altre parole, il motivo per cui si imposta questa variabile è in primo luogo dire a Vim (o mutt .. slrn .. ELinks .. ecc.) .. Ehi .. tra l'altro .. Suppongo 256 colori , Lo sapevate..?

Come risultato, non c'è nessun punto qualsiasi nell'aggiungere bloat al tuo vimrc per testare il valore di $ TERM al fine di impostare il valore della variabile t_Co Vim. Vim è abbastanza intelligente da raccogliere il numero di colori supportato dalla voce terminfo puntata dalla variabile $ TERM. Ecco perché l'hai impostato in primo luogo ..!

A questo proposito, terminale/console Vim segue semplicemente il modello * nix e determina le capacità del terminale dalla voce terminfo e automaticamente imposta il contenuto della variabile t_Co.

Provato e testato su qualcosa come 15 diverse emulazioni di terminale in un ambiente GNU/linux.

Problemi correlati