1

文件包含:

 aa
 bb
 cc
 dd

我需要:

 aa aa
 bb bb
 cc cc
 dd dd

我怎样才能做到这一点??

4

7 回答 7

6

您可以使用正则表达式执行此操作:

%s/.*/& &/
于 2013-08-30T07:25:13.933 回答
4

也许有更聪明的方法,但我会进入可视块选择模式:ctrl+ v,转到最后一行:G,一直选择最右边的:$,然后 yank: y

然后你会回到第一行。按A开始在第一行的末尾插入。输入一个空格,退出插入模式,然后按下p以粘贴您之前拉出的内容。

于 2013-08-30T07:21:26.733 回答
1

如果您在 unix 环境中:

:'<,'>! awk '{print $0, $0}'
于 2013-08-30T07:24:13.840 回答
1

矩形选择要复制的区域,将其拉出,然后将点移动到您想要文本的位置,然后粘贴。

gg0
$<C-v>G<S-i>  

<esc> gg0 
<C-v> eeGygg$p
于 2013-08-30T07:29:03.373 回答
1

现在使用 ex 命令!

:g/./y|pu|-j

长表:

:g/./yank|put|-1join

这类似于yypkJ为每一行做(:%norm yypkJ如果你愿意,你可以这样做)。

如需更多帮助,请参阅:

:h :g
:h :y
:h :pu
:h :j
:h range
:h :norm
于 2013-08-30T16:49:20.910 回答
0

转到行首。在命令模式下执行yy,转到行尾 do Jyy将当前行复制到缓冲区,J连接两行。

于 2013-08-30T07:21:44.577 回答
0

我会使用宏。转到文件顶部,使用 开始录制qq,然后执行任何操作以复制第一行。也许YpkJ,或者真的任何可以将“aa”变成“aa aa”的东西。然后再次停止录制q

要应用到缓冲区的其余部分,请使用:2,$norm @q或使用可视模式选择所有行直到结束,然后键入:norm @q

于 2013-08-30T07:27:55.900 回答