当前位置:  开发笔记 > 开发工具 > 正文

在vimdiff窗口之间复制行时撤消diff

如何解决《在vimdiff窗口之间复制行时撤消diff》经验,为你挑选了2个好方法。

如果,在命令提示符下,我运行

vimdiff file1 file2

我得到一个vim实例,它有两个并排打开的文件.我们假设文件中的文本看起来像这样(file1在左边,file2在右边):

?????????????????
?foo    ?-------?
?bar    ?bar    ?
?grue   ?-------?
?~      ?~      ?
?~      ?~      ?
?????????????????

现在假设我的光标位于"foo"的"f"上,并且我希望将file1的第一行复制到file2的第一行.

一种方法是使用v $ y选择并移动(复制)该行,然后使用Ctrl + wl将光标移动到file2的第一行,然后键入p以粘贴复制的行.如果我这样做,然后我决定我真的不想这样做,我可以按撤消我在file2中执行的粘贴命令.

另一种方法是使用diff put命令dp.但是,如果在执行此操作后我决定我不打算这样做,我无法通过按u来撤消它,因为我的光标仍在file1中,而u命令将撤消对file1的最新更改,而不是最多最近更改为file2.因此,我必须使用Ctrl + wlCtrl + ww将光标移动到file2的窗口,然后u.

所以,我的问题是:在我使用上面的dp之后,有没有简单的方法让我撤消它而不必将光标移动到另一个文件的窗口?



1> JD Frias..:

实际上没有命令,但您可以映射自己的命令.将以下内容放在vimrc中,然后使用du进行diff undos.

nmap du :wincmd w:normal u:wincmd w



2> Conrad.Dean..:

取决于你的工作流程如何,但我通常使用do获取差异到我的文件,而不是dp将差异放入另一个.这样你可以像往常一样使用uctrl+ r.

由于diff导航命令在任一文件中都是相同的,所以你应该很高兴!

下一个差异: ]c

prev diff: [c

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有