Vim 在VI中复制每一行
我有一个包含以下行的文件:Vim 在VI中复制每一行,vim,Vim,我有一个包含以下行的文件: aa bb cc dd 我想将其转换为: aa aa bb bb cc cc dd dd 这在VI中可能吗?试试这个简单的方法: :g/^/norm yyp 还有一个(较短): 另一个: :%!sed p 使用全局命令g对文件中的每一行进行操作: :g/^/norm yyp g命令将在与模式匹配的所有行上运行^是一种与任何行匹配的模式norm执行命令yyp,拖动当前行并粘贴它:g/^/norm Yp也将起作用 有关该命令的更多详细信息,请参见:help gl
aa
bb
cc
dd
我想将其转换为:
aa
aa
bb
bb
cc
cc
dd
dd
这在VI中可能吗?试试这个简单的方法:
:g/^/norm yyp
还有一个(较短):
另一个:
:%!sed p
使用全局命令g
对文件中的每一行进行操作:
:g/^/norm yyp
g
命令将在与模式匹配的所有行上运行^
是一种与任何行匹配的模式norm
执行命令yyp
,拖动当前行并粘贴它<代码>:g/^/norm Yp也将起作用
有关该命令的更多详细信息,请参见
:help global
,另请参见g
I likeg/^/t.
g
(对于global
)命令将查找与模式匹配的任何行。
我们指定的模式是
^
,它将匹配所有行。
t
将复制并粘贴,最后点将告诉它在下面粘贴
我赢是为了简洁吗?@Conner:这不起作用,因为%在原始范围内迭代,但命令会添加行。这里需要:global
的“先标记,然后迭代”逻辑。感谢s选项,因为我希望这样做是为了视觉选择,这对我来说很有用。很多人可能对此感兴趣:使用atom dude!!:)。你可以用Cmd+Shift+D(或Ctrl+Shift+D)来做。我喜欢g/^/norm yyp
,因为它可以非常简单地复制或三次复制。。或者根据需要添加p
,甚至更多<代码>g/^/norm yypp
:)10x
:g/^/norm yyp