Regex git合并冲突的Vim正则表达式

Regex git合并冲突的Vim正则表达式,regex,vim,vim-syntax-highlighting,Regex,Vim,Vim Syntax Highlighting,我正在制作一个插件,为vim中存在合并冲突的文件添加语法组 下面显示了一个冲突示例 <<<<<<< HEAD ourselves ======= themselves >>>>>>> deadbeef0123 但是在======= syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>

我正在制作一个插件,为vim中存在合并冲突的文件添加语法组

下面显示了一个冲突示例

<<<<<<< HEAD
ourselves
=======
themselves
>>>>>>> deadbeef0123
但是在
=======

syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
语法区域冲突合并containedin=ALL start=/^====$\@>>>>\@=/

正则表达式应该在分隔符之后以及提交sha之前获取所有内容

您的命令中有任何提示/指针吗?

syn region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
在我的机器上,它似乎做了你想做的事情,那就是突出显示
===
之后的文本,直到下一个
>


如果它有效并且您想更好地理解
\zs
,请参阅
:h\zs
。基本上,它从匹配中排除了之前的所有内容,并将其用作一个积极的断言(之前的内容必须在您真正感兴趣的匹配之前出现)。

Hmm,它没有突出显示给我。你有它的截图吗?@mhartington啊,很抱歉。如果我误解了这个问题,我会删除答案。这是一个显示突出显示的gif:嗯,这正是我想要的,但出于某种原因,它没有突出显示conflictMerge组。在vim和neovimWait中都尝试过,我在一个JS文件中,它覆盖了语法,导致它失败。在纯文本文件中进行测试,它可以按预期工作。My已经实现了这一点。
syn region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
^=======$\@<!
^=======\zs$