当我在 vim 中“剪切”时,我相信有一些寄存器可以保存我最近剪切的所有内容的历史记录。我如何访问这些寄存器?
例如,假设我连续剪切这些单词中的每一个
请注意,我实际上并没有将这些编辑保存到特定的寄存器中,我只是连续使用了四次 'd'。
njd*_*njd 115
这
:help 注册
命令显示有 10 个编号的寄存器 ( "0to "9)。
注册"0是最近被拉走的东西;register"1有最近删除的文本,注册"2以前的删除,"3有之前的删除,依此类推。
如果您依次删除每一行,寄存器"1,"2,"3和"4将含有“Vim的”,“和”,“世界”和“你好”,分别。
您可以使用:reg(或:registers) 命令验证这一点:
:reg
"" Vim^J
"1 Vim^J
"2 And^J
"3 World^J
"4 Hello^J
Run Code Online (Sandbox Code Playgroud)
因此,在一次删除四行之后,您可以使用以下命令恢复第二行(“世界”)
"3p
Run Code Online (Sandbox Code Playgroud)
因为这是最近的第三次删除。
除了 njd 的回答,这可以通过YankRing插件来简化。除了更容易浏览以前的 yanks 之外,您还可以配置一些键,以允许您从“堆栈”中弹出以前的 yanks。这允许您执行以下操作:
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
Run Code Online (Sandbox Code Playgroud)