我有两列完整的文字,我希望将它们并排放在一起。例如,我有
abc
def
ghi
和
123
456
789
我想要
123 abc
456 def
789 ghi
我能找到的是如何将相同的行粘贴到列中每行的末尾。我无法弄清楚如何在另一列的末尾粘贴多行文本块。
答案 0 :(得分:60)
我想知道为什么"视觉阻止模式"不是为我工作。关键是在视觉模式下猛拉(或删除)。
我发现自己需要从具有可变长度的excel列中复制一些东西。以下是我的表现方式:
Names
Donald Knuth
Sebastian Thrun
Peter Norvig
Satoshi Nakamoto
Age
100
50
60
45
我们假设你想把第二列放在第一列之后。
Age
Ctrl + v
进入可视模式5
45
y
以阻止(或d
删除)你现在已经以视觉模式猛拉了。
粘贴(在正常模式下)
移动到第一行的末尾并添加更多空格,因为它比第二行短。例如。如果您粘贴"块"如果不添加额外的空格,它将覆盖"运行"在Sebastian Thrun。
现在你在第一行,在最后一个字符后插入几个空格。确保您未处于插入模式并点击p
以粘贴该块。 (如果要粘贴插入模式,请使用ctrl+r "
)
答案 1 :(得分:51)
使用视觉块(ctrl-v
)剪切字母列。然后移动到数字列的第一行。移到最后并创建一个空格。然后粘贴字母列。
答案 2 :(得分:15)
你有:
abc
def
ghi
123
456
789
将光标移到a
上。然后CTRL+V
,将光标移至i
。按y
。
接下来,在3
字符后添加一个空格,然后按p
。
完成。
答案 3 :(得分:3)
这看起来很明显,但是如果你从外部复制的缓冲区粘贴,那么只能使用可视模式粘贴。您可以做的是首先在空白区域进行普通粘贴,然后使用上述方法进行垂直切割/粘贴。
答案 4 :(得分:3)
如果您使用的是Mac,并且无法弄清楚粘贴为何在新行中插入该块,那是因为您使用的是系统粘贴板。
没问题,只是用缓冲区拉动/粘贴:
letter
缓冲区letter
缓冲区粘贴请确保letter
不是+
,因为它不是系统粘贴板缓冲区,因此将具有相同的效果。
答案 5 :(得分:0)
如果您想手动将寄存器类型设置为blockwise,请使用此
:call setreg(0, getreg(0), 'b')
或
:call setreg('*', getreg('*'), 'b')
用于从电子表格编辑器粘贴列。
有关详细信息,请参阅:help setreg
和vimtip。