这就是我的所作所为:
5个Vim中约有2次忘记文本,通常只是粘贴换行符。这非常令人沮丧。这是一个错误吗?我似乎无法重现它,它似乎完全随机。
答案 0 :(得分:13)
运行p
时,它会从默认寄存器中粘贴。每次执行以下任何操作时,默认寄存器的内容都会更改:
y
to yank d{motion}
删除x
删除字符c{motion}
删除并输入插入模式s
删除字符并输入插入模式p
将使用默认寄存器覆盖所选文本,并使用所选文本覆盖默认寄存器(或者更简单地说,它会交换默认寄存器和所选文本)。 如此多的命令触及默认寄存器,通常情况下它不包含您的预期。出于这个原因,养成在删除或抽出稍后要粘贴的东西时始终指定寄存器的习惯是好的。
请改为尝试:
"ay
(或"ax
)"ap
答案 1 :(得分:0)
您可能会发现yankstack有用。安装它后,粘贴p
后,可以使用 Ctrl + n 和 Ctrl + p 循环通过最近被扯过的文本。
或者更简单的解决方案是从0寄存器粘贴:
来自:help "0
编号寄存器0包含最近猛拉的文本 命令,除非命令使用[“x]。
指定另一个寄存器
我经常这样做,所以我有这张地图:
" Paste last yanked item
noremap <Leader>p "0p
noremap <Leader>P "0P