Чтобы решить эту проблему, вы можете создать группу подсветки по сценарию.
Функция ниже принимает три строковых аргумента: имя группы к базе
выделение, имя создаваемой группы и строка, содержащая дополнительные
свойства выделения (или свойства для перезаписи).
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')