Eli*_*ter 9 git vim vimdiff git-merge
我已经阅读了Vimdiff并查看与Vimdiff的差异以及使用诸如"vimdiff multiple","vimdiff git","vimdiff命令"等内容进行各种谷歌搜索.
当使用do或diffg时,我得到错误"在diff模式下超过两个缓冲区,不知道使用哪个缓冲区".
当使用diffg v:fname_in时,我得到"v:fname_in没有匹配的缓冲区".
从vimdiff文档:
:[range] diffg [et] [bufspec]
修改当前缓冲区以撤消与另一个缓冲区的差异.如果给出[bufspec],则使用该缓冲区.如果[bufspec]引用当前缓冲区,则没有任何反应.否则,仅当diff模式中有另一个缓冲区时才有效.
和更多:
当'diffexpr'不为空时,Vim会计算得到所提到格式的diff文件.这些变量设置为使用的文件名:
v:fname_in原始文件
v:fname_new同一文件的新版本
v:fname_out生成的diff文件
所以,我需要获取bufspec的名称,但是没有设置默认变量(fname_in,fname_new和fname_out).
我通过终端在linux机器上运行命令git mergetool.
[编辑]一个产生更多问题的部分解决方案.我在缓冲区的底部使用了"filename".它只有一半的答案,因为偶尔我得到一个文件不存在错误.我相信它一直是"不存在"的文件的远程版本.我怀疑这与git和索引有关.
你如何获得的bufspec值一致,而使用Vimdiff可以通过混帐合并工具?
小智 10
[bufspec]
上面的参数可以是缓冲区编号,缓冲区名称的模式或缓冲区名称的一部分.例子:
:diffget
使用处于diff模式的其他缓冲区:diffget 3
使用缓冲区3:diffget v2
使用匹配v2
且处于diff模式的缓冲区(例如file.c.v2
)我总是使用缓冲区的数量.