How to tell which colorscheme a Vim session currently uses

后端 未结 3 963
隐瞒了意图╮
隐瞒了意图╮ 2021-01-30 08:16

You can set the Vim color scheme by issuing

:colorscheme SCHEME_NAME

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

相关标签:
3条回答
  • 2021-01-30 08:20

    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
    
    0 讨论(0)
  • 2021-01-30 08:27

    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.

    0 讨论(0)
  • 2021-01-30 08:33

    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.

    0 讨论(0)
提交回复
热议问题