如何在Vim中正确扩展突出显示组? [英] How to properly extend a highlighting group in Vim?
本文介绍了如何在Vim中正确扩展突出显示组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Italic
的组,使其与
Normal
,但文本为斜体。我的Normal
群是
设置为
Normal ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
我的问题是:
正确的做法是添加
term=italic
设置如下?hi Italic term=italic ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
我想以一种通用的方式来做,也就是定义这样的 该设置适用于所有配色方案(以上设置仅适用 用于我目前的配色方案)。有没有办法做到这一点?类似于
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屋!
查看全文