【问题标题】:How to properly extend a highlighting group in Vim?如何正确扩展 Vim 中的突出显示组?
【发布时间】:2011-07-07 12:54:15
【问题描述】:

我想创建一个名为Italic 的组,使其与 Normal 但文字为斜体。我的Normal 组是 设置为

Normal   ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424

我的问题是:

  1. 正确的做法是加term=italic 设置如下?

    hi Italic term=italic ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
    
  2. 我想以通用方式进行,即定义Italic 这样 该设置适用于所有颜色方案(以上仅适用于 对于我目前的配色方案)。有没有办法实现它?类似的东西

    hi Italic extends Normal term=italic 
    

【问题讨论】:

    标签: vim highlight color-scheme


    【解决方案1】:

    要解决此问题,您可以通过脚本创建突出显示组。这 下面的函数接受三个字符串参数:要基的组的名称 突出显示,要创建的组的名称,以及包含附加的字符串 突出显示属性(或要覆盖的属性)。

    function! ExtendHighlight(base, group, add)
        redir => basehi
        sil! exe 'highlight' a:base
        redir END
        let grphi = split(basehi, '\n')[0]
        let grphi = substitute(grphi, '^'.a:base.'\s\+xxx', '', '')
        sil exe 'highlight' a:group grphi a:add
    endfunction
    

    因此,调用

    :call ExtendHighlight('Normal', 'Italic', 'term=italic')
    

    创建一个名为Italic 的新组,该组扩展Normal 突出显示 term=italic 属性字符串。

    请注意,自定义突出显示组在配色方案上保持不变 交换。要更正此行为,您可以在当前 配色方案变化。

    :autocmd ColorScheme * call ExtendHighlight('Normal', 'Italic', 'term=italic')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 2018-09-04
      • 2011-05-29
      • 2011-05-05
      • 2010-10-20
      • 2012-08-04
      相关资源
      最近更新 更多