如何判断Vim会话当前使用哪种colorscheme

时间:2010-03-10 18:48:52

标签: vim configuration syntax-highlighting

您可以通过发出

设置 Vim颜色方案
:colorscheme SCHEME_NAME

但奇怪的是,你无法通过发布

获得当前使用的方案
:colorscheme

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

那么你如何计算当前使用的颜色方案(除了手动切换主题直到你认出它)?

3 个答案:

答案 0 :(得分:141)

没有保证的方式(因为配色方案基本上是源码的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记录在案here

:help colorscheme

答案 1 :(得分:34)

最佳选择是在当前vim中使用:colo:colorscheme,并显示实际的colorscheme文本。请看,

:help colorscheme 

了解更多详情。

答案 2 :(得分:0)

DrAl的答案的单行版本:

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

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