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

前端之家收集整理的这篇文章主要介绍了在vimdiff窗口之间复制行时撤消diff前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果在命令提示符下,我运行
vimdiff file1 file2

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

╔═══════╤═══════╗
║foo    │-------║
║bar    │bar    ║
║grue   │-------║
║~      │~      ║
║~      │~      ║
╚═══════╧═══════╝

现在假设我的光标位于“foo”的“f”,我想将file1的第一行复制到file2的第一行.

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

另一种做法是使用diff put命令dp.但是,如果在这样做之后,我决定我不是这样做的,我不能简单地通过按u来撤消它,因为我的光标仍然在file1,并且u命令将撤消最近对file1的更改,而不是最多最近更改为file2.因此,我必须使用Ctrl w l或Ctrl w w将光标移动到file2的窗口,然后按u.

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

真的没有这个命令,但你可以映射自己的.
将以下内容放在您的vimrc中,然后使用du进行diff undos.
nmap du :wincmd w<cr>:normal u<cr>:wincmd w<cr>

猜你在找的Bash相关文章