如何在Vim中正确扩展突出显示组? [英] How to properly extend a highlighting group in Vim?

查看:10
本文介绍了如何在Vim中正确扩展突出显示组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望创建一个名为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. 我想以一种通用的方式来做,也就是定义这样的 该设置适用于所有配色方案(以上设置仅适用 用于我目前的配色方案)。有没有办法做到这一点?类似于

    hi Italic extends Normal term=italic 
    

推荐答案

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

function! ExtendHighlight(base, group, add)
    redir => basehi
    sil! exe 'highlight' a:base
    redir END
    let grphi = split(basehi, '
')[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的新组,该组通过 term=italic属性字符串。

请注意,自定义高亮显示组在配色方案上保持不变 正在切换。要纠正此行为,您可以在当前 配色方案更改。

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

这篇关于如何在Vim中正确扩展突出显示组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆