我正试图像这样粘贴在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_neg_2 "Don’t know"_1 "Day"
a_2 "Week"
答案 0 :(得分:3)
复制+粘贴(或剪切+粘贴)操作(以Vim术语:yank或delete和put)由寄存器调解。寄存器可以包含字符或行文字 * (参见:help characterwise
)。
y5l
,y2W
,y$
,v
< motion> y
等,则注册将以字符明智文字结束。y2j
,y}
,V
< motion> y
等等,则注册将保留行-wise text。当您放置寄存器的内容时,文本的放置取决于它是字符还是行。
文本是放在光标位置之前还是之前(它所在的行)是由您使用的put命令控制的:
p
(小写)将文本放在光标之后(如果寄存器当前是行,则在其行之后)P
(大写)将文本放在光标之前(如果寄存器当前是行,则在其行之前)简而言之,您如何挑选/删除和如何将 影响最终结果。
根据您的描述,您似乎正在使用p
放置字符文本(可能通过v
,或单击基于鼠标的选择)。
相反,您应该使用行标记文本P
(放在前面)。如果您正在进行基于键盘的选择,请使用V
(大写)而不是v
(小写)。如果您正在进行基于鼠标的选择,请在开始选择时进行三次单击而不是单击。然后,猛拉或删除并使用P
在您向上移动到第一行后进行最后的“粘贴”。
* 寄存器也可以保存逐块数据(例如,来自 Control-V 块状视觉模式);放置时,它将以块状方式放置。
答案 1 :(得分:2)
小写 p 在光标后粘贴。
大写 P 在光标前粘贴。
答案 2 :(得分:1)
在视觉模式中, y 抽出几组字符, Y 抽出几组线条。
当您抽出字符时,以下放置是字符敏感的,这会导致您的问题。用 Y 代替整条线,你应该得到你想要的行为。
答案 3 :(得分:1)
在ex模式下使用put
:
:put