私は最近フィルター!
技術に気づいていて、それが大好きです。残念ながら、ビジュアルブロックモードでは使用できません。ここの専門家が私を助けてくれることを願っています。
基本的に、下の3番目の列(MWEのみ)などの列をインプレースで並べ替えたいです。また、並べ替えの際に他の列に影響を与えたくありません。
ユーティリティ!
をsort
使用して、視覚的に(ブロックモードで)選択した3番目の列をフィルター()しようとしました。しかし、ソートはむしろ選択範囲を超えています。つまり、選択だけでなく、すべての行が入れ替えられ、最初の列に基づいてソートされます。
1. LARGEST 40
2. SECOND-LARGEST 168
3. MID 2.8
4. MID 540
5. MID 14.84
6. MID 40
7. SECOND-LEAST 64
8. LEAST 8
私はビジュアルブロックを使用して最後の列を選択し、次のよう!sort --reverse
に表示されると言いました
'<,'>!sort --reverse
そして、その結果は私が期待したものとは正反対です。結果には、1つの列だけでなく、行全体が並べ替え/入れ替えられています。これも、3番目の列の選択に関係なく、最初の列に基づいています。
8. LEAST 8
7. SECOND-LEAST 64
6. MID 40
5. MID 14.84
4. MID 540
3. MID 2.8
2. SECOND-LARGEST 168
1. LARGEST 40
そうでなければ不可能でない限り、sed
/ などの比較的高度なツールではなく、純粋なvim + sortソリューションが欲しいawk
です。言うまでもなく、ビジュアルモードに比べて、ビジュアルブロックモードがどの程度制限されているかを知ることが重要です。
:help filter
)だけでなく、標準化されています(申し訳ありませんが、そのPOSをディープリンクする方法がわかりません)。RFTMを使用しない場合、文句を言うことはできません。
sort
利用可能なvim内部コマンドがあるので!sort
、通常のソートを行うために外部を呼び出す必要がないことに注意してください。