如何将具有给定模式的所有文本移动到Vim文件的顶部?

Alb*_*lby 3 vim

我知道

g/PATTERN/m $
Run Code Online (Sandbox Code Playgroud)

将所有匹配PATTERN的文本移动到文件末尾.我如何完成相反的工作?(即到文件的顶部)?

FDi*_*off 8

更改$0

:g/PATTERN/m0
Run Code Online (Sandbox Code Playgroud)

如果您希望它与文件中的顺序相同,则运行命令两次.

或者一下子.execute因为g不能用酒吧链接所以需要.第二个g命令将使用与第一个相同的模式.

:exec 'g/PATTERN/m0' | g//m0
Run Code Online (Sandbox Code Playgroud)

全局命令之后的命令:move将当前行移动到提供移动的任何地址.0表示文件中的第一行,$表示最后一行.