我正在制作一个插件,该插件将为 vim 中具有合并冲突的文件添加语法组。
下面显示了一个示例冲突。
<<<<<<< HEAD
ourselves
=======
themselves
>>>>>>> deadbeef0123
<<<<<<< HEAD
的当前正则表达式至 =======
工作正常。syntax region conflictHead containedin=ALL start=/^<<<<<<< \@=/ end=/^=\@=/
但是在 =======
之后,我一直试图为所有内容获取正确的正则表达式syntax region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
正则表达式应该在分隔符之后获得所有内容,直到提交 sha。
任何提示/指示?
最佳答案
在您的命令中:
syn region conflictMerge containedin=ALL start=/^=======$\@<!/ end=/^>>>>>>> \@=/
也许你可以替换模式:
^=======$\@<!
和:
^=======\zs$
在我的机器上,它似乎做你想做的,就是突出显示
=======
后面的文字直到下一个 >>>>>>>
.如果它有效并且您想更好地了解
\zs
,见 :h \zs
.基本上,它从比赛中排除了之前的所有内容,并将其用作肯定断言(之前的内容必须出现在您真正感兴趣的比赛之前)。
关于regex - 用于 git 合并冲突的 Vim 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447085/