Vim 如何检索状态行中使用的当前模式颜色高亮显示?

Vim 如何检索状态行中使用的当前模式颜色高亮显示?,vim,vim-plugin,vim-syntax-highlighting,Vim,Vim Plugin,Vim Syntax Highlighting,我正在为Vim中的当前行添加一个自动高亮显示,它与状态行中使用的当前模式颜色相匹配。到目前为止,如果我能找到一种方法来获得当前的颜色,我还没有取得多少成功 状态行的颜色是基于当前主题设置的,因此我宁愿动态设置当前行的颜色,而不是硬编码 例如,我的一些模式颜色是: Normal = Blue Insert = Green Visual = Red 我希望能够从当前主题中检索用于突出显示的确切颜色代码,以便设置一些简单的自动命令,将其用于模式切换 有没有办法轻松检索这些颜色?您可以通过synIDa

我正在为Vim中的当前行添加一个自动高亮显示,它与状态行中使用的当前模式颜色相匹配。到目前为止,如果我能找到一种方法来获得当前的颜色,我还没有取得多少成功

状态行的颜色是基于当前主题设置的,因此我宁愿动态设置当前行的颜色,而不是硬编码

例如,我的一些模式颜色是:

Normal = Blue
Insert = Green
Visual = Red
我希望能够从当前主题中检索用于突出显示的确切颜色代码,以便设置一些简单的自动命令,将其用于模式切换


有没有办法轻松检索这些颜色?

您可以通过
synIDattr()
查询突出显示组的颜色和属性;您可以在
:help hlID()
中找到一个示例

如果您打算使用光标线功能,并使用单色状态线来获取由autocmds动态更改的
状态线
突出显示组,则只需将两者链接(
:hi link cursorline statusline
)即可

PS:我个人认为如果同一条彩色线可以代表当前的线或窗口之间的一个水平分隔符,那么会让人感到困惑,但是你的里程明显不同