文件包含:
aa
bb
cc
dd
我需要:
aa aa
bb bb
cc cc
dd dd
我怎样才能做到这一点??
您可以使用正则表达式执行此操作:
%s/.*/& &/
也许有更聪明的方法,但我会进入可视块选择模式:ctrl+ v,转到最后一行:G,一直选择最右边的:$,然后 yank: y。
然后你会回到第一行。按A开始在第一行的末尾插入。输入一个空格,退出插入模式,然后按下p以粘贴您之前拉出的内容。
如果您在 unix 环境中:
:'<,'>! awk '{print $0, $0}'
矩形选择要复制的区域,将其拉出,然后将点移动到您想要文本的位置,然后粘贴。
gg0
$<C-v>G<S-i>
<esc> gg0
<C-v> eeGygg$p
现在使用 ex 命令!
:g/./y|pu|-j
长表:
:g/./yank|put|-1join
这类似于yypkJ
为每一行做(:%norm yypkJ
如果你愿意,你可以这样做)。
如需更多帮助,请参阅:
:h :g
:h :y
:h :pu
:h :j
:h range
:h :norm
转到行首。在命令模式下执行yy
,转到行尾 do J
。yy
将当前行复制到缓冲区,J
连接两行。
我会使用宏。转到文件顶部,使用 开始录制qq
,然后执行任何操作以复制第一行。也许YpkJ
,或者真的任何可以将“aa”变成“aa aa”的东西。然后再次停止录制q
。
要应用到缓冲区的其余部分,请使用:2,$norm @q
或使用可视模式选择所有行直到结束,然后键入:norm @q
。