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

时间:2017-08-01 20:25:40

标签: regex vim vim-syntax-highlighting

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

示例冲突如下所示。

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

<<<<<<< HEAD=======的当前正则表达式正常运行。

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

但是在 =======

之后,我一直试图为所有获得正确的正则表达式
syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/

enter image description here

正则表达式应该在分隔符之后获取所有内容,直到提交为止。

任何提示/指示?

1 个答案:

答案 0 :(得分:3)

在你的命令中:

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

也许你可以替换模式:

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

使用:

^=======\zs$

在我的计算机上,它似乎可以执行您想要的操作,即在=======之后突出显示文本,直到下一个>>>>>>>

如果有效并希望更好地了解\zs,请参阅:h \zs。基本上,它排除了赛前的所有内容,并将其作为一个积极的断言(在你真正感兴趣的比赛之前必须出现在之前)。