How to tell which colorscheme a Vim session currently uses

VimConfigurationSyntax Highlighting

Vim Problem Overview


You can set the Vim color scheme by issuing

:colorscheme SCHEME_NAME

but, oddly enough, you can't get the currently used scheme by issuing

:colorscheme

as this results in "E471: Argument required". I also don't see the color scheme listed in the output of :set.

So how do you go about figuring out the current color scheme in use (other than manually switching the themes until you recognize it)?

Vim Solutions


Solution 1 - Vim

There's no guaranteed way (as a colour scheme is essentially a load of vim commands that are sourced). However, by convention there should be a variable g:colors_name that is set to the name of the colour scheme.

Therefore, try this:

echo g:colors_name

If you get E121, it's either a poorly made colour scheme or it's the default one.

A shinier way of doing this is (for recent versions of vim):

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

Then do:

:call ShowColourSchemeName()

If it says "default", do :colorscheme default and see if the colours change. If they do, you're using a malformed colour scheme and there's not a lot you can do about it other than manually switching themes until you recognise it.

The variable g:colors_name is documented here:

:help colorscheme

Solution 2 - Vim

Best option is to use :colo or :colorscheme in current vim and the actual colorscheme text is shown. Please see,

:help colorscheme 

for more details.

Solution 3 - Vim

A one-line version of DrAl's answer:

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

The get() function will fall back to 'default' if the variable has not yet been set.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongotgenesView Question on Stackoverflow
Solution 1 - VimDrAlView Answer on Stackoverflow
Solution 2 - VimGattooView Answer on Stackoverflow
Solution 3 - VimjoeytwiddleView Answer on Stackoverflow