有没有办法打印出像你用"gvim -d"打开它们时显示的差异,所有常见代码都折叠起来,只有差异显示在上下文中?我尝试了打印菜单选项,但它打印了我当前"在"的整个文件,而不是打印折叠的差异.
git difftool --tool=vimdiff --no-prompt HEAD~1 HEAD
git 将打开 vim,左侧和右侧有两个临时文件。有没有办法强制打开右边的repo文件,这样我就可以直接修改了?
有时候我正在使用vimdiff,想要获取代码并将其放在第3个窗口/缓冲区中供以后参考.但是,当那个窗口打开时,几乎所有东西都被识别为差异(因为它与其他两个文件有意地不同).如何在使用vimdiff时以非差异模式打开窗口?
我正在编写一个相当复杂的脚本.我怀疑有几个部分具有几乎相同的代码.我可以(以及如何)在vim中打开文件,在缓冲区上有两个(或更多)窗口,并在同一文件上区分窗口内容?vimdiff似乎只适用于两个文件.如果我制作文件的副本并尝试vimdiff两个版本,差异原点仍然锁定在文件的开头.虽然我可以取消锁定窗口,并将窗口移动到我要比较的文件部分,但不显示差异.任何提示或提示?我可以剪切并粘贴我要比较的部分与不同的文件然后应用vimdiff然后我冒险迷失在什么部分来自哪里当我尝试将单独的文件一起修补时,我觉得必须有一个更直接,更简单的方法.
git 似乎发生了变化,这使得 gvim 作为 diff 工具不再正常工作。具体来说,我总是使用 gvim -geometry 标志来最大化窗口。现在,我最终得到一个空白窗口(空/零行文件)。
在 vimdiff 中给出dp命令时,它会将左侧文件中的整个块(2 行)替换为右侧文件中的粉红色。
在该块中,如果我只想合并第二行。第一行不应合并。
读完这篇之后,我通过在 ~/.gitconfig 中添加以下几行,将 git 配置为使用 vimdiff 作为 diff/merge 工具:
[diff]
tool = vimdiff
[merge]
tool = vimdiff
[difftool]
prompt = false
[alias]
d = difftool
Run Code Online (Sandbox Code Playgroud)
但git difftool仍然只是打印差异(没有 vimdiff)。有任何想法吗?
更新。
似乎git difftool工作正常,如果我在 repo 中有一些未提交的更改,即它按预期打开 vimdiff。但是如果我git difftool在与冲突合并后打开 vimdiff,它就无法打开。任何想法为什么?
我该怎么做呢?通过进行更改后,git config我可以使用 vimdiff 区分我的暂存和提交的更改,但是当我这样做时,git show我仍然会以旧的普通样式看到差异。我如何使这项工作也适用git show?
我犯了一个巨大的错误。
我已经配置git difftool为使用vimdiff,然后我执行了一个比较整个存储库的命令:
git difftool tag1 tag2
现在 difftool 以 diff 模式为每个已更改的文件启动 vim。当我关闭 vim 时,它会用下一对文件再次启动。一般来说,这就是我想要的,但是如果队列中的文件太多,我可以以某种方式中止这个过程吗?我知道我可以关闭终端,但是有更好的方法吗?