这个问题之前可能已经回答了,但是我试过搜索,无法在任何地方找到答案.
我对Vim有点新,我遇到了以下问题.一旦我划线并粘贴它,我就不能再粘贴它了.例如,在Word环境中,您可以复制文本,粘贴它,然后您可以再次粘贴它.但是在Vim中,一旦我粘贴它然后再次尝试粘贴(p),它就粘贴了我粘贴在拉线上的文本.
因此,例如,我将"这条线被猛拉"的线条拉到"我不想要这条线"上,因此"这条线被猛拉"发生在"我不想要这条线"上.如果我再次点击p,我将不会得到"这条线被猛拉"粘贴,但会得到"我不想要这条线".
有没有办法我可以再次粘贴相同的拉线而不回去再次拉扯它?
Zac*_*ach 11
这是因为vim的寄存器.当您将一条拉线粘贴到另一条线上时,您刚删除的线(通过粘贴它)占据默认寄存器(存储拉线)中的拉线位置.这是为了简化切换线.Yank one,粘贴另一个,然后再回去粘贴.但是,为了保持你的拉线你可以指定一个寄存器,所以不用y你可以使用"ay,这将把你的线拉到注册a.现在粘贴你可以使用"ap,这将粘贴寄存器的内容a,这将不会被覆盖.
作为奖励"+y或"*y和"+p或"*p从系统剪贴板(其他应用程序的复制粘贴)如果在VIM启用(这是大多数系统)的糊状物.
编辑:正如评论中所提到的,当您使用yank命令时,被拉动的文本不仅会进入默认寄存器,还会进入0寄存器(粘贴其他内容时不会被覆盖).这意味着您可以正常使用y然后将其粘贴,"0p并且不会被粘贴的任何内容覆盖.
小智 7
从我的 .vimrc:
"Paste in visual mode without copying
xnoremap p pgvy
Run Code Online (Sandbox Code Playgroud)
解释:
xnoremap - 仅在可视模式下重新映射
p - 粘贴
gv - 重新选择上一个选择(不是您当前选择的,而是原始选择)
y - 复制它(最后选择)
在此映射中,您可以一遍又一遍地粘贴视觉上选定的线条。