Come stabilire quale schema di colori utilizza attualmente una sessione di Vim


107

È possibile impostare lo schema dei colori di Vim emettendo

:colorscheme SCHEME_NAME

ma, stranamente, non è possibile ottenere lo schema attualmente utilizzato emettendo

:colorscheme

poiché ciò risulta in " E471: Argument required". Inoltre non vedo la combinazione di colori elencata nell'output di :set.

Quindi come si fa a capire lo schema di colori corrente in uso (oltre a cambiare manualmente i temi fino a quando non lo si riconosce)?

Risposte:


159

Non esiste un modo garantito (poiché uno schema di colori è essenzialmente un carico di comandi vim che vengono forniti). Tuttavia, per convenzione dovrebbe esserci una variabile g:colors_nameimpostata sul nome della combinazione di colori.

Pertanto, prova questo:

echo g:colors_name

Se ottieni E121, è uno schema di colori di scarsa qualità o è quello predefinito.

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

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

Quindi fa:

:call ShowColourSchemeName()

Se dice "predefinito", :colorscheme defaultcontrolla se i colori cambiano. 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 lo riconosci.

La variabile g:colors_nameè documentata qui :

:help colorscheme

Le virgolette doppie di chiusura dopo aver "defaultperso?
Benjamin W.

38

L'opzione migliore è usare :coloo :colorschemenel vim corrente e viene mostrato il testo dello schema dei colori. Perfavore guarda,

:help colorscheme 

per ulteriori dettagli.


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

4

Una versione di una riga della risposta di DrAl:

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

La get()funzione tornerà a 'default'se la variabile non è stata ancora impostata.

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.