2010-09-21 7 views

risposta

77

Questo schema di colori assomiglia supporta solo terminali a 256 colori. Se Vim pensa che il tuo terminale supporti solo 8 colori, non vedrai quella combinazione di colori specifica.

È possibile controllare questo in Vim da:

:echo &t_Co 

Se questo restituisce 8, questo potrebbe essere il problema. Provare a impostarlo su 256 nel vostro ~/.vimrc e vedere se questo aiuta:

let &t_Co=256 
+0

Suppongo che ci sia qualche impostazione in iTerm, per consentire 256 colori? –

+0

bello che ha funzionato perfettamente –

+1

Non funziona per me sotto il terminale predefinito 10.6. Fa in modo che il testo vim lampeggi in bianco e nero. –

63

Al fine di trasformare il codice evidenziazione in vim, cercare di abilitare il plugin sintassi:

:syntax enable 
+0

Su un lato nota, molti degli schemi sono fatti per GVim/MacVim e non necessariamente visualizzare nella loro interezza all'interno del terminale. – Sean

+4

Aggiungi "syntax on" senza virgolette al file .vimrc per renderlo permanente – sarathprasath

11

Ho avuto questo problema prima, così come alcune questioni correlate, così cercherò di riassumere quello che ho trovato.

  1. Assicurarsi che iTerm sia impostato per utilizzare 256 colori. Prova a $ echo $TERM alla riga di comando e, se non vedi xterm-256color, segui le istruzioni in this answer.

  2. Configura il tuo vimrc anche per gestire altri terminali. Il terminale normale in Snow Leopard supporta solo 8 colori, ad esempio, e lampeggerà se si tenta di utilizzare una combinazione di colori a 256 colori (in questo caso non ne imposto uno solo). Ecco quello che ho:

    " enable 256 colors in GNOME terminal (for my Ubuntu VM) 
    if $COLORTERM == 'gnome-terminal' 
        set t_Co=256 
    endif 
    
    " set your color scheme (replace wombat with whatever yours is called) 
    " if you're using a gvim or macvim, then your color scheme may have a version 
    " that uses more than 256 colors 
    if has("gui_running") 
        colorscheme wombat 
    elseif &t_Co == 256 
        colorscheme wombat256 
    endif 
    
    " turn on language specific syntax highlighting 
    syntax on 
    
3

Nonostante seguendo tutti i consigli contenuti in questo (e altri, simili) domande, alla fine ho trovato il mio problema in una parte dimenticata di un vimrc che avevo preso da qualche parte sul web anni fa (perché era piuttosto ben organizzato), e poi ampiamente modificato per i miei scopi.

Ma l'area problematica era in un piccolo gruppo di impostazioni che non avevo mai toccato, di nuovo nel file originale con cui ho iniziato. Il bit dedicata del .vimrc era:

" GVIM- (here instead of .gvimrc) 
    if has('gui_running') 
      set guioptions-=T    " remove the toolbar 
      set lines=40     " 40 lines of text instead of 24, 
    else 
      set term=builtin_ansi  " Make arrow and other keys work 
    endif 

sorprende (a posteriori), che "impostare termine" linea ripristina le cose in modo che, indipendentemente da ciò che digitare il terminale sta riportando nella variabile d'ambiente TERM, si finisce con un terminale ANSI generico a 8 colori. Impostare esplicitamente "termine" all'interno di .vimrc è probabilmente una pessima idea, proprio come l'impostazione di t_Co direttamente.

Ho rimosso questo blocco intero (e ho inserito le impostazioni di gvim in .gvimrc, a cui appartengono), e da allora tutto ha funzionato correttamente.

18

Per coloro che hanno ancora problemi.

iTerm 2 -> Preferenze -> Profili -> Colori -> contrasto minimo -> più basso

setup