如何在Vim中的另一列文本之后粘贴一列文本?

我有两列全是文字,我想把它们并排放在一起。 例如,我有

abc def ghi 

 123 456 789 

而且我要

 123 abc 456 def 789 ghi 

所有我能find的是如何将同一行粘贴到列的每一行的末尾。 我无法弄清楚如何在另一列的末尾粘贴多行文本块。

使用可视化块( ctrl-v )剪切字母列。 然后移到数字列的第一行。 移动到最后,并创造一个空间。 然后粘贴字母列。

我想知道为什么“视觉模块模式”不适合我。 关键是在可视模式下抽取 (或删除)。

我发现自己需要复制一些具有可变长度的excel列的东西。 以下是我如何做到这一点:

 Names Donald Knuth Sebastian Thrun Peter Norvig Satoshi Nakamoto Age 100 50 60 45 

假设你想在第一列之后放置第二列。

  1. 以视觉模式将其拉开:
    • 将光标移到Age的开头
    • Ctrl + v进入可视模式
    • 将光标移到45 5
    • y键(或d键删除)

你现在已经在视觉模式下被抽出了。

  1. 粘贴(在正常模式下)

    • 移动到第一行的末尾,并添加更多的空格,因为它比第二行短。 如果你粘贴一个“块”而不增加额外的空格,它将会覆盖塞巴斯蒂安·特朗的“运行”。

    • 现在你在第一行,在最后一个字符后面插入一些空格。 确保你没有进入插入模式,并点击p粘贴块。 (如果你想在插入模式下粘贴,使用ctrl+r "

在这里输入图像说明

你有:

 abc def ghi 123 456 789 

将光标移到a 。 然后CTRL+V ,并将光标移动到i 。 按y

接下来,在3字符后面添加一个空格,然后按p

完成。

这看起来很明显,但是如果从外部复制的缓冲区粘贴,它将无法使用可视化模式粘贴。 你可以做的是先使用上述方法在空白区域垂直剪切/粘贴。