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
。基本上,它从匹配中排除了之前的所有内容,并将其用作肯定断言(之前的内容必须出现在您真正感兴趣的匹配之前)。
我正在制作一个插件,它将为 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
。基本上,它从匹配中排除了之前的所有内容,并将其用作肯定断言(之前的内容必须出现在您真正感兴趣的匹配之前)。