我们可以使用m来移动行,使用j来连接行。例如,如果您有一个列表,并且想要将所有匹配(或相反,不匹配)某个模式的内容分开,而不删除它们,则可以使用以下命令::% g/foo/m$ ... 然后所有“foo”行都将被移动到文件的末尾。(请注意另一个提示,即将文件末尾用作草稿空间)。这将保留所有“foo”行的相对顺序,同时将它们从列表的其余部分中提取出来。(这相当于执行以下操作之一:1G!GGmap!Ggrep foo<ENTER>1G:1,'a g/foo'/d(将文件复制到自己的尾部,通过grep过滤尾部,并从头部删除所有内容)。)
阅读Jim Dennis的这篇传奇回答,但我仍然无法理解这个序列:
阅读Jim Dennis的这篇传奇回答,但我仍然无法理解这个序列:
1G!GGmap!Ggrep foo<ENTER>1G:1,'a g/foo'/d
有人能帮忙解释一下吗?GGmap是什么?为什么1G! GGmap之间有一个感叹号?Ggrep是否来自vim-fugitive?