在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>

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...