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

Vim regex for git merge conflicts

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

下面显示了一个冲突示例。

<<<<<<< HEAD
ourselves
=======
themselves
>>>>>>> deadbeef0123

<<<<<<< HEAD======= 的当前正则表达式工作正常。

syntax region conflictHead containedin=ALL start=/^<<<<<<< \@=/ end=/^=\@=/

但是我一直在尝试为所有内容获取正确的正则表达式 after =======

syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/

正则表达式应该得到分隔符之后的所有内容,直到提交 sha。

任何tips/pointers?

在你的命令中:

syn region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/

也许你可以替换模式:

^=======$\@<!

有:

^=======\zs$

在我的机器上,它似乎做你想做的,即突出显示 ======= 之后的文本,直到下一个 >>>>>>>

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