Recientemente conocí la !
técnica de filtrado , y me encanta. Desafortunadamente, no puedo usarlo en un modo de bloque visual. Espero que algunos expertos aquí me ayuden.
Básicamente, quiero ordenar en el lugar una columna como la tercera a continuación (solo un MWE). Y no quiero molestar a las otras columnas cuando las ordeno.
Traté de filtrar ( !
) la tercera columna visualmente seleccionada (modo bloque) a través de la sort
utilidad. Pero la ordenación se extiende más allá de la selección, es decir, todas las filas se intercambian, no solo la selección, sino que también se clasifica según la primera columna.
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
Seleccioné la última columna usando visual-block y dije !sort --reverse
que aparece como
'<,'>!sort --reverse
Y el resultado es extraño en oposición a lo que esperaba. ¡El resultado tiene las filas completas ordenadas / intercambiadas, no solo una columna, y eso también, según la primera columna, independientemente de mi selección de tercera columna!
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
A menos que sea imposible de lo contrario, me gustaría una solución vim + sort pura, en lugar de las herramientas relativamente avanzadas como sed
/ awk
. Es más importante conocerme a mí mismo, cuán limitado es el modo de bloqueo visual, en comparación con el modo visual.
:help filter
) sino también estandarizado (lo siento, no sé cómo vincular ese POS). No puede quejarse si no RFTM.
sort
comando interno vim disponible, por lo que no necesita invocar el externo!sort
para realizar una ordenación regular.