Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 如何找出当前colorscheme用于特定内容的特定颜色值?_Vim_Vim Plugin_Statusline - Fatal编程技术网

Vim 如何找出当前colorscheme用于特定内容的特定颜色值?

Vim 如何找出当前colorscheme用于特定内容的特定颜色值?,vim,vim-plugin,statusline,Vim,Vim Plugin,Statusline,我需要这个来完成我正在制作的插件,以便根据模式改变状态行的颜色 然而,我遇到了一个明显的问题,我如何知道用户使用的是什么主题?即使我知道我不能为每个主题制作特定的颜色 例如,如何知道当前主题用于statusline的前景色和背景色 编辑1: 如果我不清楚,我正在寻找一种方法来找出某些东西的ctermfg/bg和guifg/bg。现在显示状态行。:) 编辑2: 显然,如果我做了:hi StatusLine,我会得到我所需要的,但是我需要对它进行细化,以仅获得值,而不是全部值。我想我得用一些正则表达

我需要这个来完成我正在制作的插件,以便根据模式改变状态行的颜色

然而,我遇到了一个明显的问题,我如何知道用户使用的是什么主题?即使我知道我不能为每个主题制作特定的颜色

例如,如何知道当前主题用于statusline的前景色和背景色

编辑1:

如果我不清楚,我正在寻找一种方法来找出某些东西的
ctermfg
/
bg
guifg
/
bg
。现在显示状态行。:)

编辑2:


显然,如果我做了
:hi StatusLine
,我会得到我所需要的,但是我需要对它进行细化,以仅获得值,而不是全部值。我想我得用一些正则表达式来找出这个值。如果有人知道一个更简单的方法,请分享(或者如果你已经用正则表达式解决了)。谢谢

您可以使用

:echo &background
根据
:help background
的规定,也应该有一个
前台
设置,但它对我不起作用

编辑:
中有变量
guibg
guifg
ctermbg
ctermfg
:hi[glight]

您可以使用
synIDattr()
函数查询语法高亮显示的各种属性(如前景和背景色)。要确定突出显示组的ID,可以使用
hlID()
。请参见
:help hlID()


哦,不,我不是说可以选择使用暗/浅背景。而是一种了解主题所用颜色的方法。例如,如何知道主题用于评论的确切颜色。哦,我阅读了您指向的文档,我认为可能是这样,但是我不确定。可能可以使用
&fg
&bg
,但是我需要运行一些测试来确保。如果你发现了,一定要告诉我。:)嗯,不,似乎不是这样。永远不要少a+1.:)也许你正在
中寻找
ctermbg
ctermfg
:嗨
这正是我要找的!谢谢
:echo synIDattr(synIDtrans(hlID('StatusLine')), 'fg')