如何分别复制每行下面的多行?

时间:2018-02-26 04:59:42

标签: vim

抱歉英文不好,请看这个例子:

原始

a
line01
line02
line03
line04
b

希望成为:

a
line01
line01
line02
line02
line03
line03
line04
line04
b

ab无关。

我可以复制一行并粘贴,然后重复。有没有简单的解决方案?像一个命令?

2 个答案:

答案 0 :(得分:1)

你也可以写一个vim宏 -

将光标放在第0行第0列;记录一个宏,存储在寄存器a

qa

复制当前行;粘贴在下面;将光标向下移动到下一行

yypj

保存宏

q

现在运行a宏N次(无论如何都会停在文件的底部)

3@q

答案 1 :(得分:0)

对于funsies sed解决方案:

$ sed 'p' input.txt > output.txt

在Vim中使用过滤器:!

:%!sed p

强制性awk解决方案:awk '1;1' input.txt > output.txt