Di recente ero a conoscenza della !
tecnica di filtraggio e la adoro. Sfortunatamente, non sono in grado di usarlo in modalità blocco visivo. Spero che alcuni esperti qui mi aiutino.
Fondamentalmente, voglio ordinare sul posto una colonna come la terza di seguito (solo un MWE). E non voglio disturbare le altre colonne durante l'ordinamento.
Ho provato a filtrare ( !
) la terza colonna visivamente (modalità blocco) selezionata tramite l' sort
utilità. Ma l'ordinamento si estende piuttosto oltre la selezione, cioè tutte le righe vengono scambiate, non solo la selezione, anche l'ordinamento in base alla prima colonna!
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
Ho selezionato l'ultima colonna usando il blocco visivo e ho detto !sort --reverse
che appare come
'<,'>!sort --reverse
E il risultato è strano al contrario di quello che mi aspettavo. Il risultato ha le intere righe ordinate / scambiate, non solo una colonna, e anche quella, in base alla prima colonna indipendentemente dalla mia selezione della terza colonna!
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
Salvo diversamente impossibile, vorrei una soluzione vim + sort pura, piuttosto che strumenti relativamente avanzati come sed
/ awk
. È ancora più importante conoscere me stesso, quanto è limitata la modalità di blocco visivo, rispetto a dire, la modalità visiva.
:help filter
) ma anche standardizzato (scusate, non so come collegare in profondità quel POS). Non puoi lamentarti se non RFTM.
sort
comando interno vim , quindi non è necessario invocare l'esterno!sort
per eseguire un ordinamento regolare.