Vim:多行后粘贴多行

时间:2013-11-27 16:13:02

标签: vim

在vim中,如何在可视块的每一行之后粘贴多行代码?

我拥有的是:

    foo
    bar

1
2
3

我想做的是:

1
    foo
    bar
2
    foo
    bar
3
    foo
    bar

有没有办法轻松实现这个目标?

3 个答案:

答案 0 :(得分:4)

您可以将其剪切为默认寄存器并对其余行进行全局替换,如下所示:

转到文件第一行的第一列:

gg0

剪切数据:

3dd

对文件的每一行执行全局重复并粘贴它:

:g/^/put

它产生:

1
    foo 
    bar 

2
    foo 
    bar 

3
    foo 
    bar 

答案 1 :(得分:2)

假设您要复制并粘贴行号1 2 3,请运行以下命令:

:g/^\S/1,3t.

然后将文本foo bar复制到正确的位置。然后你可以删除这两行。

您还可以将1,3更改为其他范围。

答案 2 :(得分:1)

不是完全自动化,而是几乎在那里:

  • 使用 Shift + V

  • 直观地突出显示要复制的行
  • 使用 d

  • 删除
  • 移至第一行(“1”)并开始使用 q 录制,后跟一些字母,即 a

  • 使用 p 粘贴,然后向下移动到下一行(“2”)。使用 q 停止录制。

  • 现在只需用 @@ 或+指定的字母重复上一次录制的命令,即 @a