Vim阻止粘贴行内或换行

时间:2018-09-24 18:32:06

标签: vim

我遇到这个问题,我尝试用Vim拉动/剪切并粘贴一段文本,并且行为不一致。

这是怎么回事:

在下面的文字中,我将剪切中间的列并粘贴到第三列之后。因此,我块选择(ctrl-v)文本,将其剪切(x),将光标移至第三列的末尾(现在为第二列)并粘贴(p)

A 1 a
B 2 b 
C 3 c
D 4 d

有时Vim做对了,结果是这样的:

A a 1
B b 2
C c 3
D d 4

有时候,结果是这样的:

A a
1
2
3
4
B b
C c
D d

我需要控制这种行为,而不是将其作为人质...我如何控制这种行为?

2 个答案:

答案 0 :(得分:2)

我建议您阅读帮助主题以进行视觉选择, :h visual.txtvisual-operators的部分及其注释可能 特别有用。选择行为相当一致且容易 虽然了解。如果您裁切或复制某些东西,请期待 以相同的模式放置:字符,行或块。

  

在第三次之后,我该如何切割中段Ecolumn并粘贴。所以我   块选择(ctrl-v)文本,将其选中(y),将光标移至   第三列的末尾(现在为第二列)并粘贴(p)

这不是您应该做的。像您一样“剪切”中间列 描述,您开始使用x而不是y。 Yanking只会将其复制并 留在那里。

Blockwise selection demo

关于最后一个示例,其中内容以行方式粘贴 时尚,使用p时不应发生这种情况,因为它可以节省 逐块信息。我唯一可能的解释 请注意,您已删除一列并使用:put进行粘贴。那会 将其转换为逐行粘贴。或者:

  • 您也拉了类似的内容(例如来自V的内容),而您正试图 逐块粘贴
  • 您的示例不能很好地解决您的问题
  • 有些插件或配置会对此产生影响
  • 在此过程中,随机未知密钥被砰击

答案 1 :(得分:1)

好吧,答案之一就是UnconditionalPaste插件(https://vimawesome.com/plugin/unconditionalpaste

使用'gbp'粘贴行内代码块(我重新映射到[LEADER] pb)

有效...