我正在使用 vimdiff 进行 git 合并。有没有一种快速的方法来选择要使用的 1 个文件,现在我只是从一个缓冲区中选择所有内容,用它替换 $MERGE,然后保存。我想我可以宏化,但想知道是否有更好的方法。谢谢!
问问题
11461 次
4 回答
38
几种方式:
:%diffput
将所有更改从当前缓冲区“放入”到“其他”缓冲区。这使得使用三向差异变得容易:
:%diffput OURS
'OURS' 模式将唯一匹配参与当前差异的缓冲区名称
以上所有可以反过来完成,替换do或:diffget
于 2011-06-07T00:21:50.503 回答
12
你应该看看Tim Pope 的 Fugitive 插件。这是一个非常有用的插件。
Gdiff
在冲突文件中运行时,会打开 3 个文件 - 目标、合并和工作副本。您将切换到要保存的文件,然后执行Gwrite!
以保存该文件。
有一个完整的Vimcast解释如何使用这个插件解决合并冲突(以及其他 5 个 vimcast 解释更多关于 Fugitive.vim 的内容)。
于 2011-06-07T02:23:55.510 回答
6
于 2017-08-10T23:37:39.900 回答
5
- 确保所有参与的缓冲区都处于差异模式(请参阅
:h start-vimdiff
如何启动差异模式) v
在底座中为 VISUAL MODE做- 选择整个文件(
Page Down
一直按) :
然后写入diffget <buffer number/name>
(: ls
将列出所有缓冲区,通常在 vimdiff 中它们是从右到左 1-3 或 4 如果 3 路 diff)- 然后
: wqa
你就完成了
或者,在第 0 步之后,可以:%diffget <buffer number>
从指定的缓冲区获取所有更改,因为它:diffget
也接受范围。(见:%
和:diffget
。)
反过来也可以::%diffput <buffer>
将所有更改发送到缓冲区编号,使两个缓冲区具有相同的内容。
于 2014-06-19T14:37:48.583 回答