这个问题之前可能已经回答了,但我尝试过搜索,无法在任何地方找到答案。
我对Vim有些新意,我遇到了以下问题。一旦我划线并粘贴它,我就不能再粘贴它了。例如,在Word环境中,您可以复制文本,粘贴它,然后您可以再次粘贴它。但是在Vim中,一旦我粘贴它然后再次尝试粘贴(p),它会粘贴我粘贴在那条线上的文本。
因此,例如,我将“这条线被猛拉”的线条拉到“我不想要这条线”上,因此“这条线被猛拉”发生在“我不想要这条线”上。 如果我再次点击进一步,我将不会粘贴“这条线被猛拉”,但会得到“我不想要这条线”。
有没有办法可以再次粘贴相同的拉线而不会再回来再次拉扯它?
答案 0 :(得分:11)
这是因为vim的寄存器。当您将一条拉线粘贴到另一条线上时,您刚删除的线(通过粘贴它)占据默认寄存器(存储拉线)中的拉线位置。这是为了简化切换线。 Yank one,粘贴另一个,然后再回去粘贴。但是,为了保留您的抽奖行,您可以指定一个注册表,因此您可以使用y
而不是"ay
,这会将您的行放入注册a
。现在要粘贴,您可以使用"ap
,这将粘贴寄存器a
的内容,这些内容不会被覆盖。
作为奖励"+y
或"*y
和"+p
或"*p
粘贴系统剪贴板(其他应用程序的复制粘贴),如果它在vim中启用(它是在大多数系统上。)
y
进行抓取,然后将其粘贴到"0p
,并且不会被粘贴的任何内容覆盖。
答案 1 :(得分:3)
来自我的.vimrc:
"Paste in visual mode without copying
xnoremap p pgvy
说明:
xnoremap - 仅在可视模式下重新映射
p - 粘贴
gv - 重新选择最后一个选择(不是您当前所选的那个,而是原始选择)
y - 复制它(最后选择)
在此映射中,您可以一遍又一遍地粘贴视觉上选定的行。