使用vim.我的原始文件如下所示:
Wire 1_blah
Wire 2_blah
Wire 3_blah
reg blah_blah_1
reg blah_blah_2
reg blah_blah_3
Run Code Online (Sandbox Code Playgroud)
(除了,想象一下大约4000行)
我想要的结果如下:
Wire 1_blah
Wire 2_blah
reg blah_blah_1
reg blah_blah_2
Wire 3_blah
reg blah_blah_3
Run Code Online (Sandbox Code Playgroud)
意思是,我想删除所有数字为3的行并将其粘贴到最后.我尝试了以下方法:
:'<,'>g/3/d
Run Code Online (Sandbox Code Playgroud)
然后
p
Run Code Online (Sandbox Code Playgroud)
但这只记得删除的最后一行.
有关如何快速有效地完成此任务的任何建议?我不想浪费时间手动做.
谢谢!
:g/3/m$
Run Code Online (Sandbox Code Playgroud)
做你想要的:
:g[lobal]/foo/commandcommand在每一行匹配时执行foo,:m$ 将当前行移动到缓冲区的末尾,:g/3/m$将包含a的所有行移动3到缓冲区的末尾.见:help :global和:help :move.
胜利的前命令!
编辑
要在同一个寄存器中删除所有这些行,比如注册a,请使用:
:g/3/d A
Run Code Online (Sandbox Code Playgroud)
意思是"剪切并附加这些行以注册a".
见:help registers.