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