これは、この質問の拡張です(以前に尋ねました):
、しかし今、私はn-stripedデータに一般化したいと思います
したがって、この質問の拡張は、これをストライピングのないデータセットにどのように一般化するのでしょうか。
明らかに、上記は事実上1行おきに2行のデストライピングですが、以下のこのパターンのデータを3行のデストライピングに効果的にソートしたい場合はどうでしょうか。N列のデスストライプ?
前:
111
222
333
444
555
666
NEW AFTER(2ストライプを使用している場合):
111
333
555
222
444
666
NEW AFTER(3ストライプは以下のように再分類されます):
111
444
222
555
333
666
これにはアルゴリズム名があるかもしれません。私はソートの経験が豊富ではありませんが、その名前がある可能性があります。誰かが明確にできる場合は、私に知らせてください。
繰り返しになりますが、パラメーター付きのマクロ(またはそうでない)は、ここでの解決策のために私がやろうとしていることです。これは、ソートユーティリティスペースでも効果的かもしれませんが、前の質問への回答に基づいて、vimscriptで実行可能だと思います。
したがって、私がスクリプト用に作成するのは、次のようなものです(データに対して視覚的な行選択を行います)。次に、次のようなユーザーマクロ関数を呼び出します。
:'<','>' call Destripe(2)
:'<','>' call Destripe(3)
ここで、loneパラメーターはストライピングを記述します。
別の例(私がやろうとしていたことをより明確にするため)、3つのストライプのデータがある場合
前(LHS)と後(RHS):
aaa aaa
bbb aaa
ccc aaa
aaa bbb
bbb bbb
ccc bbb
aaa ccc
bbb ccc
ccc ccc
2ストライプデータの例
前(LHS)と後(RHS):
aaa aaa
bbb aaa
aaa aaa
bbb bbb
aaa bbb
bbb bbb
アイデアをくれた@lornixに感謝します