gpt4 book ai didi

vim - 我如何接受 vimdiff hunk 的两个更改?

转载 作者:行者123 更新时间:2023-12-02 03:16:36 46 4
gpt4 key购买 nike

解决合并冲突时,一个相当常见的模式是我和另一个人都修改了列表或通常被附加到的其他代码部分。如:

global.registerFeature(fc);
global.registerFeature(fb);
global.registerFeature(fa);
<<<<<<<
global.registerFeature(aNewFeature);
=======
global.registerFeature(anotherNewFeature);
>>>>>>>

当我在 vimdiff 中查看这样的合并冲突时,vim 会为我提供选择一个或另一个的选项。但我想做的是应用两个差异。我通常只是求助于直接编辑合并文件(只是删除合并标记);但是在 vimdiff 中有更简单的方法吗?

最佳答案

将目标分支和合并分支的更改合并到一个命令中:

您可以只删除带有 Git 冲突标记的行。以下两种方法将删除所有以以下开头的行:

<<<<<<<
=======
>>>>>>>

方法 1:手动输入和执行命令

:g/^<\{7}\|^|\{7}\|^=\{7}\|^>\{7}/d

方法 2:实现用户定义的命令

"Delete all Git conflict markers
"Creates the command :GremoveConflictMarkers
function! RemoveConflictMarkers() range
echom a:firstline.'-'.a:lastline
execute a:firstline.','.a:lastline . ' g/^<\{7}\|^|\{7}\|^=\{7}\|^>\{7}/d'
endfunction
"-range=% default is whole file
command! -range=% GremoveConflictMarkers <line1>,<line2>call RemoveConflictMarkers()

Vim diffgetdiffput 只会选择一个分支。因此,除了上面给出的解决方案之外,唯一真正的解决方案是手动从两个文件中提取并粘贴到工作副本中。

关于vim - 我如何接受 vimdiff hunk 的两个更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701875/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com