如果在命令提示符下,我运行
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.
真的没有这个命令,但你可以映射自己的.
将以下内容放在您的vimrc中,然后使用du进行diff undos.
将以下内容放在您的vimrc中,然后使用du进行diff undos.
nmap du :wincmd w<cr>:normal u<cr>:wincmd w<cr>