将以下匹配的行移动到文件的顶部

Dog*_*ert 8 vim

我有一个大文本文件,其中有几个调用特定函数method_name.

我用它们匹配它们:g/method_name.

如何将它们移动到文件的顶部(第一个匹配位于顶部)?

我试过了,:g/method_name/normal ddggP但这颠倒了顺序.是否有更好的方法直接剪切和粘贴所有匹配的行?

示例输入文件:

method_name 1
foo
method_name 2
bar
method_name 3
baz
Run Code Online (Sandbox Code Playgroud)

示例输出文件:

method_name 1
method_name 2
method_name 3
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

Pri*_*ash 5

如何以相反的方式尝试它:将不匹配的线条移动到底部:

:v/method_name/normal ddGp
Run Code Online (Sandbox Code Playgroud)

这似乎达到了你想要的.

  • 实际上,没有.`:v/method_name/m $`可能效率更高. (5认同)