这是这个问题的扩展(我之前问过):
,但现在我想推广到 n-striped 数据
因此,这个问题的扩展将是——如何将其推广到非条带化数据集?
显然,上面的内容实际上是每隔一行进行 2 行去条带化,但是如果我们想有效地将下面这种模式中的数据排序为 3 行去条带呢?N行条纹?
前:
111
222
333
444
555
666
之后的新功能(如果使用 2 条纹):
111
333
555
222
444
666
NEW AFTER(3条纹如下所示):
111
444
222
555
333
666
可能有一个算法名称;我在排序方面没有很强的背景,但它可能有一个名字——如果有人能澄清,请告诉我。
同样,带参数的宏(或不带参数)是我在这里尝试解决的问题。这在排序实用程序空间中也可能有效,但基于上一个问题的答案,我认为它在 vimscript 中是可行的。
所以我会为脚本设计的东西类似于(在数据上进行视觉线选择),然后调用一个用户宏函数,如
:'<','>' call Destripe(2)
:'<','>' call Destripe(3)
其中唯一的参数描述了条带化。
如果我有 3 条数据,另一个例子(为了更清楚地说明我想要做什么)
之前(左)和之后(右):
aaa aaa
bbb aaa
ccc aaa
aaa bbb
bbb bbb
ccc bbb
aaa ccc
bbb ccc
ccc ccc
带有 2 条数据的示例
之前(左)和之后(右):
aaa aaa
bbb aaa
aaa aaa
bbb bbb
aaa bbb
bbb bbb
感谢@lornix 的想法