我正在制作一个插件,为vim中包含合并冲突的文件添加语法组。
示例冲突如下所示。
<<<<<<< HEAD
ourselves
=======
themselves
>>>>>>> deadbeef0123
<<<<<<< HEAD
到=======
的当前正则表达式正常运行。
syntax region conflictHead containedin=ALL start=/^<<<<<<< \@=/ end=/^=\@=/
但是在 =======
syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
正则表达式应该在分隔符之后获取所有内容,直到提交为止。
任何提示/指示?
答案 0 :(得分:3)
在你的命令中:
syn region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
也许你可以替换模式:
^=======$\@<!
使用:
^=======\zs$
在我的计算机上,它似乎可以执行您想要的操作,即在=======
之后突出显示文本,直到下一个>>>>>>>
。
如果有效并希望更好地了解\zs
,请参阅:h \zs
。基本上,它排除了赛前的所有内容,并将其作为一个积极的断言(在你真正感兴趣的比赛之前必须出现在之前)。