假设我有 5 行文本,如果我输入一些命令让 vim 处理每一行,Vim 将一个接一个地处理文本,第一行,第二行,...最后一行。我想要的是让 Vim 以相反的顺序处理我的文本。即先是最后一行,然后是第 4 行,最后是第一行。
为什么我需要这个?我有以下文字
1234567890
abc
123
def
1234567890
123456789
我想从包含 3 个字符的行中删除换行符(\n)。所以处理后,我会得到以下文字
1234567890
abc123def1234567890
123456789
好像小菜一碟,我用下面的命令
:%s/\v(^\w{3})\n/\1/
但我得到的是
1234567890
abc123
def1234567890
1234567890
为什么?我猜vim首先从第二行删除\n,然后这一行有文本abc123,现在vim不会在123之后删除\n,因为它现在不是3个字符,所以vim处理下一行def,并从中删除\n ,这就是我得到的结果。
如果 vim 可以从后向前处理,就不会发生这种情况,我可以得到我想要的结果。
顺便说一句,我可以通过其他方式得到预期的结果,我只是想知道这是否可能。