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

您可以通过发出 准备好了的 Vim 配色方案

:colorscheme SCHEME_NAME

但是,奇怪的是,您不能通过发出

:colorscheme

作为这个结果在“ E471: Argument required”。我也没有看到配色方案列出的 :set的输出。

那么,你如何去弄清楚当前使用的配色方案(除了手动切换主题,直到你认出它) ?

53151 次浏览

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

Therefore, try this:

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

最佳选择是在当前 vim 中使用 :colo:colorscheme,并显示实际的配色方案文本,

:help colorscheme

了解更多细节。

A one-line version of DrAl's answer:

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

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