在vim中,如何在可视块的每一行之后粘贴多行代码?
我拥有的是:
foo
bar
1
2
3
我想做的是:
1
foo
bar
2
foo
bar
3
foo
bar
有没有办法轻松实现这个目标?
答案 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 。