【问题标题】:How to find out a certain color value the current colorscheme is using for certain stuff?如何找出当前颜色方案用于某些东西的某个颜色值?
【发布时间】:2012-12-12 07:38:26
【问题描述】:

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

但是我遇到了一个明显的问题,我怎么知道用户正在使用什么主题?即使我知道我无法为每个主题制作特定的颜色。

那么,例如,如何知道当前主题用于状态行的前景色和背景色。

编辑 1:

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

编辑 2:

显然,如果我这样做 :hi StatusLine 我得到了我需要的东西,但是我需要改进它以仅获得价值,而不是全部。猜猜我将不得不使用一些正则表达式来找出价值。如果有人知道更简单的方法,请分享它(或者如果你已经用正则表达式弄清楚了)。谢谢!

【问题讨论】:

    标签: vim vim-plugin statusline


    【解决方案1】:

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

    :echo synIDattr(synIDtrans(hlID('StatusLine')), 'fg')
    

    【讨论】:

    • 这正是我想要的!谢谢!
    【解决方案2】:

    你可以用

    获取背景
    :echo &background
    

    根据:help background 应该也有一个foreground 设置,但它对我不起作用。

    编辑: :hi[glight]中有变量guibgguifgctermbgctermfg

    【讨论】:

    • 哦,不,我不是指使用深色/浅色背景的选项。而是一种了解主题使用什么颜色的方法。例如,如何知道主题用于 cmets 的确切颜色。
    • 哦,我阅读了您指向的文档,我认为可能是这样,但我不确定。
    • 可能使用&fg&bg,但是我需要运行一些测试来确定。如果你确定一定要告诉我。 :)
    • 嗯,不,似乎不是。永远不会少+1。 :)
    • 也许你正在寻找:hi中的ctermbgctermfg
    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 2021-02-28
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多