当我在 vim 中“剪切”时,我相信有一些寄存器会保存我最近剪切的所有内容的历史记录。我如何访问这些寄存器?
例如,假设我把这些单词逐个剪切下来
- '你好'
- '世界'
- '和'
- “Vim”
请注意,我实际上并没有将这些编辑保存到特定的寄存器中,我只是连续使用“d”四次。
答案1
这
:help 寄存器
命令显示有 10 个编号寄存器("0
到"9
)。
注册"0
是最近的事情拉扯; 注册"1
有最新的删除文本,注册"2
前一次的删除,"3
之前有删除,等等。
如果依次删除每一行,寄存器"1
、"2
和"3
将"4
分别包含“Vim”、“And”、“World”和“Hello”。
您可以使用:reg
(或:registers
)命令来验证这一点:
:reg
"" Vim^J
"1 Vim^J
"2 And^J
"3 World^J
"4 Hello^J
因此,在一次删除四行之后,你可以使用以下命令恢复第二行(“World”)
"3p
因为这是最近第三次删除。
答案2
除了 njd 的答案之外,还可以使用以下方法简化扬克环插件。除了可以更轻松地浏览以前的 yank 之外,您还可以配置一些键,以便将以前的 yank 从“堆栈”中弹出。这允许您执行以下操作:
yy " Copy first line
yy " Copy second line
yy " Copy third line
yy " Copy fourth line
" Assumes you've mapped ,p to be the pop command: choose your preferred key or key-combination
,p " Paste fourth line and pop it off the Yank Ring
,p " Paste third line and pop it off the Yank Ring
,p " Paste second line and pop it off the Yank Ring
,p " Paste first line and pop it off the Yank Ring