Vim 获取要粘贴到光标下方的多行拉伸
我正试图像这样粘贴到Vim中:Vim 获取要粘贴到光标下方的多行拉伸,vim,keyboard-shortcuts,copy-paste,Vim,Keyboard Shortcuts,Copy Paste,我正试图像这样粘贴到Vim中: a_1 "Day" a_2 "Week" a_neg_1 "Refused" a_neg_2 "Don’t know" 在这里,我复制最后两行,并在前两行上方通过它们。像这样: a_neg_1 "Refused" a_neg_2 "Don’t know" a_1 "Day" a_2 "Week" 似乎每次我做多行拉伸时,它总是想将其粘贴到行内。像这样: aa_neg_1 "Refused"
a_1 "Day"
a_2 "Week"
a_neg_1 "Refused"
a_neg_2 "Don’t know"
在这里,我复制最后两行,并在前两行上方通过它们。像这样:
a_neg_1 "Refused"
a_neg_2 "Don’t know"
a_1 "Day"
a_2 "Week"
似乎每次我做多行拉伸时,它总是想将其粘贴到行内。像这样:
aa_neg_1 "Refused"
a_neg_2 "Don’t know"_1 "Day"
a_2 "Week"
小写的p粘贴在光标后
大写p粘贴在光标前。在视觉模式下,y拖动字符集,y拖动行集
当您拖动字符时,以下put是字符敏感的,这导致了您的问题。用Y来拖动整行,您应该可以得到您想要的行为。复制+粘贴(或剪切+粘贴)操作(在Vim术语中:Yank或delete and put)由寄存器进行中介。寄存器可以保存字符或行文本*(请参见:help characterwise
)
- 如果选择“按字符”(
,y5l
,y2W
,y$
v
,等等),寄存器将以字符文本结束y
- 如果选择“按行”(
,y2j
,y}
V
,等等),寄存器将按行保存文本y
- 当您将按字符排列的文本插入时,它将在光标位置之后/之前插入
- 当按行放置文本时,它将插入光标所在行的后面/前面
(小写)将文本放在光标之后(或其行之后,如果寄存器当前为逐行)p
(大写)将文本放在光标之前(或其行之前,如果寄存器当前为逐行)P
根据您的描述,您似乎正在使用
p
来放置字符文本(可能通过v
,或者单击鼠标选择)
相反,您应该将p
(放在前面)与逐行文本一起使用。如果您正在进行基于键盘的选择,请使用V
(大写)而不是V
(小写)。如果要进行基于鼠标的选择,请在开始选择时单击三次而不是单击一次。然后,拖动或删除并使用P
在移动到第一行后进行最后的“粘贴”
*寄存器也可以保存块数据(例如,来自Control-V块视觉模式);当put时,它将以块方式放置。在ex模式下仅使用
put
:
:put
你怎么拉的?使用
v
或ctrl+v
或shift+v
或如何使用?使用2yy
或yj
(两行)或shift+v
应该可以。您可能想尝试用大写字母“P”粘贴。无法开始告诉您这是一个多么棒、彻底的答案。行和字符的区别不是我听说过的,我可以看出它的含义是巨大的。谢谢你的洞察力。(我能够从中得出我的解决方案,它只是2dd和p)