Я вношу изменения в существующий код C. Если я просто хочу проверить свои изменения, я могу легко использовать для этого vimdiff
со старыми и измененными файлами.
Я хочу ограничить подсветку синтаксиса только частью diff
.
В частности, мне нужно выделить ВКЛАДКИ, но только те ВКЛАДКИ, которые содержатся в DiffAdd
и DiffChange
разделах/регионах.
Что я пробовал:
syntax region TESTRGN start="TESTRGN_START" end="TESTRGN_END"
highlight TESTRGN ctermbg=lightgreen guibg=lightgreen
syntax match LeadingTabsInRegion display contained containedin=TESTRGN /^\( *\t\+\)\+/
highlight LeadingTabsInRegion ctermbg=darkred guibg=darkred
Вышеприведенный фрагмент выделяет ведущие ВКЛАДКИ в пределах TESTRGN
, а вкладки в оставшемся файле остаются невыделенными.
Однако, если я изменю TESTRGN на DiffAdd в строке syntax match
, это не сработает так, как я ожидал.
Насколько я понимаю, DiffAdd
не является регионом, определенным с помощью syntax region ...
, и, следовательно, containedin=DiffAdd
не работает.
Итак, есть ли какой-либо метод/обходной путь для выполнения того, что я пытаюсь сделать?