如何判断Vim会话当前使用的颜色方案


107

您可以通过发出设置 Vim配色方案

:colorscheme SCHEME_NAME

但是,奇怪的是,您不能通过发出来获得当前使用的方案

:colorscheme

因为这会导致“ E471: Argument required”。我也看不到输出中列出的配色方案:set

那么,如何确定当前正在使用的配色方案(除了手动切换主题,直到您识别出主题)?

Answers:


158

没有保证的方法(因为配色方案本质上是源于vim命令的负载)。但是,按照约定,应该将一个变量g:colors_name设置为配色方案的名称。

因此,请尝试以下操作:

echo g:colors_name

如果您收到E121,则可能是配色方案不佳,或者是默认配色方案。

一种更聪明的方法是(对于vim的最新版本):

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

然后做:

:call ShowColourSchemeName()

如果显示“默认”,:colorscheme default请检查颜色是否改变。如果是这样,则说明您使用的是格式错误的配色方案,除了手动切换主题直到您识别出主题为止,您无能为力。

该变量g:colors_name记录在这里

:help colorscheme

"default缺少后是否用双引号括起来?
本杰明W.

38

最好的选择是在当前vim中使用:colo:colorscheme在其中,并显示实际的colorcheme文本。请参见,

:help colorscheme 

更多细节。


3
它对我不起作用。它说default。我执行时得到的配色方案:colo default是另一种方案。
daVe

4

DrAl答案的单行版本:

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

如果尚未设置变量,该get()函数将退回到'default'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.