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

标签 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
正则表达式应该在分隔符之后获得所有内容,直到提交 sha。
任何提示/指示?

最佳答案

在您的命令中:

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

也许你可以替换模式:
^=======$\@<!

和:
^=======\zs$

在我的机器上,它似乎做你想做的,就是突出显示=======后面的文字直到下一个 >>>>>>> .

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

关于regex - 用于 git 合并冲突的 Vim 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447085/

相关文章:

javascript - ES5 Regex 测试以任意顺序查找一组字符

vim - 如何在 IdeaVim 中打破长线

python - 如何在 vim 中获取 Python 帮助?就像vim一样使用:h

vim - 在 VIM 中,有什么方法可以为模板尖括号定义 syn 区域而不与小于号发生冲突?

python - Python 的 Vim 语法高亮 'else:'

javascript - 由 5 位数字组成的正则表达式集,后跟一个逗号(尾随逗号可选)

regex - 如何在angularJs中使用ng-pattern验证十进制不?

javascript - PHP - file_get_contents 使用正则表达式获取 JSON,但无法解码 JSON(获取 JSON_ERROR_SYNTAX)

linux - 我如何去 vim 中的第 X 场比赛?

vim - 文件保存期间语法高亮随机消失