我怎么只是dp或只做行,而不是Vim diff中的整个块?

Modified on: Sun, 23 Sep 2018 10:40:03 +0800

我目前正在使用MacVim(快照64)“Split Diff by ...”菜单选项。

该文件是Django的我的settings.py从版本1.3.1到版本1.4的新文件。

我知道两个基本命令

  1. d o 从另一边“获取”(并替换)一个块。
  2. d p 将一个块“放”(并替换)到另一侧。
  3. 醇>

    但是这两个命令会写入整个块,在MacVim中是紫色高光。

    如果你看第二个块,你可以看到第2行和第3行只有2个不同的词:mysitehobbes3。我只想替换每行而不是整个块。

    那么有什么命令可以替换每行的 d o d p 整块还是我必须手动输入?

    加分问题:我注意到,一旦我手动编辑了一个块,我就会失去紫色突出显示。如何再次“刷新”差异以包含高光而不重新打开文件?

    请尽量保持答案Vim-general与MacVim特定相反。

最佳答案

有很多方法可以做到这一点。

  1. 选择要从源缓冲区获取的目标缓冲区中的行范围,然后使用:diffget。例如,您可以使用V在视觉上选择一系列行,然后键入:diffget
  2. 选择要放入目标缓冲区的源缓冲区中的行范围,并使用:diffput。例如,要将当前行放入另一个缓冲区,请键入:.diffput
  3. 使用猛拉并放置。选择要复制到目标缓冲区的源缓冲区中的行范围,使用Y将它们移动,将光标移动到目标缓冲区并使用pP,然后删除你不想要的行。
  4. 如上所述,但是在目标缓冲区中,在视觉上选择要替换的行的范围(不一定是相同的行数)并键入"0p。它使用0(零)寄存器,它总是包含最近的一个文本。
  5. 醇>

    要“刷新”显示以显示正确的突出显示,请执行:diffupdate或只需:diffu。有时这还不够,您需要将光标移动到另一个窗口以完成刷新。

    您可以在

    中阅读有关复制差异的更多信息
    :help copy-diffs
    
作者:,garyjohn

相关问答

添加新评论