我想创建一个名为
Italic
的突出显示组,就像
Normal
但文本为斜体。目前,我的 Normal
突出显示
设置为
ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
我的问题是:
是否以正确的方式将
term=italic
添加到 Normal
属性
这样做?
:hi Italic term=italic ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
是否可以以通用方式做到这一点,即定义 新的突出显示组可与任何基础组的风格相匹配 配色方案(以上仅适用于我当前的配色方案)? 类似的东西
:hi Italic extends Normal term=italic
要解决此问题,您可以通过脚本创建突出显示组。 下面的函数采用三个字符串参数: 组的名称 突出显示的基础、要创建的组的名称和字符串 包含要添加或覆盖的突出显示属性。
function! ExtendHighlight(base, new, extra)
redir => attrs | sil! exec 'highlight' a:base | redir END
let attrs = substitute(split(attrs, '\n')[0], '^\S\+\s\+xxx\s*', '', '')
sil exec 'highlight' a:new attrs a:extra
endfunction
因此,电话
:call ExtendHighlight('Normal', 'Italic', 'term=italic')
创建一个名为
Italic
的新组,它扩展了 Normal
突出显示
通过 term=italic
属性字符串。
请注意,自定义突出显示组的配色方案保持不变 交换。要纠正此行为,您可以在以下情况下更新组: 当前配色方案更改:
:autocmd ColorScheme * call ExtendHighlight('Normal', 'Italic', 'term=italic')