【发布时间】:2015-04-05 02:48:46
【问题描述】:
我正在更改现有的 C 代码。如果我只是想检查我的更改,我可以轻松地使用 vimdiff 来处理旧文件和修改过的文件。
我想要的是将一些语法突出显示限制在 diff 部分。
我特别需要突出显示 TABS,但仅突出显示在 DiffAdd 和 DiffChange 部分/区域中的那些 TABS。
我尝试了什么:
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
sn-p 上方突出显示 TESTRGN 中的前导 TABS,其余文件中的选项卡保持未突出显示。
但是,如果我在 syntax match 行中将 TESTRGN 更改为 DiffAdd,它就不会像我预期的那样工作。
我的理解是DiffAdd 不是使用syntax region ... 定义的区域,因此containedin=DiffAdd 不起作用。
那么有什么方法/解决方法可以做我想做的事吗?
【问题讨论】:
标签: vim syntax-highlighting vim-syntax-highlighting vimdiff