为何使用点命令重复粘贴寄存器1时Vim会依次切换寄存器?
Vim点命令重复粘贴遍历寄存器的原因分析
寄存器状态
Type Name Content l "" xxxxx^J c "0 0000 l "1 xxxxx^J l "2 11111^J l "3 2222^J l "4 3333^J l "5 4444^J l "6 5555^J l "7 6666^J l "8 7777^J l "9 8888^J c "- h c "* xxxxx c ". xxxxx c ": reg c "% temp c "/ \vq
操作现象
执行"1p成功粘贴寄存器1的内容xxxxx,但使用点.命令时,并未重复粘贴寄存器1的内容,而是粘贴了寄存器2的11111;重复点命令会依次遍历寄存器3、4...的内容。
原因解析
这是Vim编号寄存器的自动轮转特性导致的:
- 编号寄存器
"1到"9存储最近删除/复制的内容,"1对应最近一次操作,"2是上一次,以此类推。 - 执行
"1p粘贴后,Vim会自动轮转编号寄存器:原"2的内容移到"1,原"3移到"2,依此类推。而点命令.重复的是「粘贴当前"1寄存器内容」的动作逻辑。 - 所以第一次按
.时,"1已经变成原"2的内容,粘贴出11111;再次按.,"1又轮转成原"3的内容,最终呈现遍历所有编号寄存器的效果。
内容的提问来源于stack exchange,提问作者Doena
相关产品推荐
相关产品推荐

