it-swarm.com.de

So erfahren Sie, welches Farbschema eine Vim-Sitzung derzeit verwendet

Sie können das Vim-Farbschema durch Ausgabe setzen

:colorscheme SCHEME_NAME

aber seltsamerweise können Sie das aktuell verwendete Schema nicht durch Ausgabe erhalten

:colorscheme

da dies zu "E471: Argument required" führt. Ich sehe auch das Farbschema nicht in der Ausgabe von :set.

Wie können Sie also herausfinden, welches Farbschema aktuell verwendet wird (abgesehen vom manuellen Wechseln der Designs, bis Sie es erkennen)?

91
gotgenes

Es gibt keinen garantierten Weg (da ein Farbschema im Wesentlichen aus Vim-Befehlen besteht, die bezogen werden). Gemäß der Konvention sollte es jedoch eine Variable g:colors_name geben, die auf den Namen des Farbschemas gesetzt ist.

Versuchen Sie deshalb Folgendes:

echo g:colors_name

Wenn Sie E121 erhalten, ist dies entweder ein schlecht erstelltes Farbschema oder es ist das Standardschema.

Ein glänzenderer Weg, dies zu tun, ist (für aktuelle Versionen von vim):

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

Dann mach:

:call ShowColourSchemeName()

Wenn es "default" sagt, tun Sie :colorscheme default und sehen Sie, ob sich die Farben ändern. Wenn dies der Fall ist, verwenden Sie ein fehlerhaftes Farbschema, und Sie können nicht viel anderes tun, als Themen manuell zu wechseln, bis Sie es erkennen.

Die Variable g:colors_name ist dokumentiert hier :

:help colorscheme
135
DrAl

Am besten verwenden Sie :colo oder :colorscheme in der aktuellen Version, und der tatsächliche Farbschemotext wird angezeigt. Bitte sehen Sie

:help colorscheme 

für mehr Details. 

33
Gattoo

Eine einzeilige Version der Antwort von DrAl:

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

Die Funktion get() wird auf 'default' zurückgesetzt, wenn die Variable noch nicht festgelegt wurde.

0
joeytwiddle