如何在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
假设你想在第一列之后放置第二列。
- 以视觉模式将其拉开:
- 将光标移到
Age
的开头 - 按
Ctrl + v
进入可视模式 - 将光标移到
45
5
- 按
y
键(或d
键删除)
- 将光标移到
你现在已经在视觉模式下被抽出了。
-
粘贴(在正常模式下)
-
移动到第一行的末尾,并添加更多的空格,因为它比第二行短。 如果你粘贴一个“块”而不增加额外的空格,它将会覆盖塞巴斯蒂安·特朗的“运行”。
-
现在你在第一行,在最后一个字符后面插入一些空格。 确保你没有进入插入模式,并点击
p
粘贴块。 (如果你想在插入模式下粘贴,使用ctrl+r "
)
-
你有:
abc def ghi 123 456 789
将光标移到a
。 然后CTRL+V
,并将光标移动到i
。 按y
。
接下来,在3
字符后面添加一个空格,然后按p
。
完成。
这看起来很明显,但是如果从外部复制的缓冲区粘贴,它将无法使用可视化模式粘贴。 你可以做的是先使用上述方法在空白区域垂直剪切/粘贴。