2010-03-10 12 views
87

È possibile impostare la combinazione di colori Vim mediante l'emissione diCome dire che colorscheme una sessione di Vim utilizza attualmente

:colorscheme SCHEME_NAME 

ma, stranamente, non è possibile ottenere lo schema attualmente utilizzato mediante l'emissione di

:colorscheme 

come risultato in "E471: Argument required". Inoltre, non vedo la combinazione di colori elencata nell'output di :set.

Così come si va a capire lo schema di colori corrente in uso (oltre a cambiare manualmente i temi finché non lo si riconosce)?

risposta

125

Non esiste un modo garantito (come una combinazione di colori è essenzialmente un carico di comandi Vim che sono originati). Tuttavia, per convenzione dovrebbe esserci una variabile g:colors_name impostata sul nome della combinazione di colori.

Pertanto, provate questo:

echo g:colors_name 

Se si ottiene E121, è sia una combinazione di colori di scarsa qualità o è quello di default.

Un modo brillante per farlo è (per le versioni recenti di vim):

function! ShowColourSchemeName() 
    try 
     echo g:colors_name 
    catch /^Vim:E121/ 
     echo "default 
    endtry 
endfunction 

Poi fare:

:call ShowColourSchemeName() 

Se si dice "default", fare :colorscheme default e vedere se i colori modificare. Se lo fanno, stai usando una combinazione di colori malformata e non c'è molto che puoi fare al riguardo, oltre a cambiare manualmente i temi finché non li riconosci.

La variabile g:colors_name è documentato here:

:help colorscheme 
+3

Risposta fantastica e completa. Vorrei poter alzare il voto due volte. Grazie. – gotgenes

+0

È la virgoletta doppia di chiusura dopo che manca "predefinito" –

31

L'opzione migliore è quella di utilizzare :colo o :colorscheme in vim corrente e il testo colorscheme reale viene mostrato. Si prega di vedere,

:help colorscheme 

per ulteriori dettagli.

+1

Non funziona per me. Dice "default" e la combinazione di colori che ottengo quando eseguo ': colo default' è un'altra. – daVe

0

Una versione di una riga di risposta di DRAL:

let current_scheme = get(g:, 'colors_name', 'default') 

La funzione get() cadrà di nuovo al 'default' se non è ancora stata impostata la variabile.

Problemi correlati