Guía para ordenar líneas en Vim

Guia Para Ordenar Lineas En Vim



Para ordenar líneas en Vim, puedes usar el incorporado clasificar comando que ordena líneas por un rango definido. Normalmente, todas las líneas del documento se ordenan si no se proporciona ningún rango.

Por ejemplo, si desea ordenar todo el documento, utilice el :clasificar comando en modo NORMAL. Por otro lado, si sólo desea ordenar líneas específicas, utilice el :x,y sort comando, donde X y y definir el rango desde el número de línea X a y .







La clasificación es una de las funcionalidades cruciales que se requieren al editar documentos. Vim no es menos que cualquier editor avanzado cuando se trata de proporcionar funciones únicas como la clasificación. Por lo tanto, en esta guía, explicaré las funciones integradas de Vim. clasificar comando y cómo usarlo de diferentes maneras para ordenar líneas.



Nota: Las instrucciones y comandos mencionados en esta guía se realizan en Linux (Ubuntu 22.04). Vim es un editor de texto multiplataforma y estos comandos funcionarán sin ningún error también en macOS y Windows.



Ordenar todas las líneas





Para ordenar todas las líneas de un documento, ejecute el comando clasificar comando en el modo NORMAL.

:clasificar

 



Por defecto, el clasificar El comando ordenará las líneas en orden lexicográfico.

Tenga en cuenta que si su archivo tiene líneas vacías, el comando de clasificación colocará las líneas vacías en la parte superior de la clasificación de texto real.

Ordenar líneas seleccionadas

Para ordenar las líneas seleccionadas, primero tenemos que seleccionarlas en el modo de selección. Y para habilitar el modo de selección, presione en y seleccione líneas usando el h , j , k, y yo teclas o botones direccionales.

Vim también tiene un modo de selección de línea específica llamado LÍNEA VISUAL modo. Prensa V (cambio+v) para permitir el LÍNEA VISUAL modo para seleccionar las líneas.

Después de seleccionar las líneas, verá ' <, > en la línea de comando, que representa el rango de selección. El ' < indicó la primera línea de selección visual, mientras que ' > indica el último.

Ahora, simplemente escriba el clasificar comando y presione la tecla de retorno para aplicar la clasificación en las líneas seleccionadas como se muestra en el siguiente GIF.

Ordenar las líneas a distancia

El rango de línea se puede pasar antes que el clasificar comando para ordenar las líneas. El : establecer número El comando se puede utilizar para activar el número de línea en Vim, lo que facilita la identificación del número de línea.

Por ejemplo, para ordenar líneas desde la línea número 1 hasta la línea número 4, utilice el :1,4 tipo dominio.

: 1 , 4 clasificar

 

Como se puede ver en el resultado anterior, las únicas líneas especificadas están ordenadas.

Ordenar al revés

Como se mencionó anteriormente, el comportamiento predeterminado del clasificar El comando es ordenar las líneas en orden lexicográfico. Para ordenar las líneas de forma no léxica, agregue el signo de exclamación ( ! ) después de la clasificar dominio.

:clasificar !

 

Ordenar por configuración regional

Las computadoras funcionan en todo el mundo y tienen diferentes idiomas con diferentes conjuntos de caracteres y reglas. Cuando se trata de ordenar la clasificación por cuestiones regionales. Por ejemplo, si vive en Japón y desea ordenar las líneas según esa ubicación, deberá especificarla. El clasificar El comando también permite configurar la opción de configuración regional con el yo bandera.

Para comprobar la configuración regional actual, utilice el :idioma dominio.

:idioma

 

Para ordenar con el uso local actual:

:suerte l

 

Nota: Es posible que esta opción no funcione correctamente en sistemas basados ​​en macOS.

Ordenar por número

Para ordenar líneas según el primer número decimal de una línea, utilice el norte bandera con el clasificar dominio. La clasificación se realizará en orden ascendente de forma predeterminada.

:sort n

 

Para ordenar en orden descendente, utilice el ! símbolo después del comando.

:clasificar ! norte

 

La diferencia entre clasificar y sort n es que el comando ordenar ordena las líneas léxicamente, ignorando los números que contienen. Si desea ordenar con respecto a los números, agregue el norte bandera con el comando ordenar.

Por ejemplo, las líneas del siguiente archivo también tienen letras y números. Cuando lo ordenamos aplicando la clasificar Solo comando, estas líneas se ordenarán alfabéticamente. Por otro lado, aplicando la sort n El comando ordena las líneas por número como se muestra en la siguiente imagen.

En la siguiente tabla se mencionan algunas otras opciones para la clasificación numérica.

F Clasificación de números flotantes
b clasificación de números binarios
oh clasificación de números octales
h Clasificación de números hexadecimales

 

Ordenar por marcas

En Vim, las marcas se utilizan para establecer posiciones específicas en el archivo para facilitar la navegación en un archivo con cientos de líneas. Las marcas se pueden utilizar para realizar una operación de clasificación utilizando el clasificar dominio.

Supongamos que ha establecido dos marcas a y b .

Entonces, para ordenar todas las líneas de la marca a marcar b , utilice el siguiente comando.

: 'a,' b clasificar

 

La comilla simple ( ) se utiliza para acceder a las marcas.

Ordenar por expresión regular (RegEx)

La expresión regular (RegEx) es una de las formas comunes de ordenar líneas definiendo un patrón con el clasificar dominio.

Por ejemplo, para ordenar las líneas con respecto a una columna que tiene alfabetos y dígitos, use el /[a-z]*[0-9]+/ patrón con el clasificar dominio. El r bandera después del clasificar El comando se utiliza para indicarle al comando que ordene según el patrón mencionado.

:ordenar r / [ Arizona ] * [ 0 - 9 ] + /

 

Como puede ver en la imagen de arriba, la última columna está ordenada alfabéticamente. Para ordenar la columna numéricamente, simplemente inserte el norte bandera.

Nota: Me salté las primeras líneas definiendo el rango desde la línea 2,5.

El r flag le permite ordenar el archivo según los patrones dados. Sin el r bandera, el comando ordenar ordenará todas las líneas que no coincidan con el patrón.

Eliminar las líneas duplicadas

La forma más rápida de eliminar las líneas duplicadas en un archivo es usar el clasificar comando con el en bandera, que representa lo único.

:variedad u

 

Tenga en cuenta que el uso de este método para eliminar líneas duplicadas también ordenará las líneas, lo que puede no ser deseado en muchas situaciones. Utilice métodos alternativos, como expresiones regulares, para eliminar líneas duplicadas en un archivo sin necesidad de ordenarlo.

Ordenar líneas según una columna

Hay dos métodos para ordenar líneas en Vim según la columna. El primer método utiliza el comando de clasificación externo de Linux, mientras que el segundo utiliza el comando de clasificación integrado.

El comando externo es fácil de implementar en comparación con el comando de clasificación predeterminado. Tenga en cuenta que los comandos externos no son los comandos predeterminados de Vim. Significa cualquier comando que sea compatible con el sistema operativo.

Entendamos cómo funciona en Vim.

Para usar cualquier comando externo en Vim, ! El símbolo se utiliza antes de ese comando. Supongamos que tenemos un archivo separado por comas (CSV) y queremos ordenarlo con respecto a la tercera columna. El comando será

: %! clasificar -t ',' -k3

 

El % indica todo el búfer como una selección. El -t La bandera se utiliza para definir el separador de campo, que puede ser una coma, dos puntos o incluso un espacio. El -k flag es la clave que indica la posición en la línea, y k2 significa el segundo campo después del delimitador especificado.

En el ejemplo, he mencionado el rango en lugar de % para saltar la primera línea.

: 2 , 5 ! clasificar -t ',' -k3

 

El externo clasificar El comando también puede ser útil de muchas otras maneras porque ofrece varias opciones de clasificación, como barajar, ordenar aleatoriamente y fusionar. Para obtener más información sobre el comando de clasificación de Linux, utilice el hombre ayuda dominio.

Por otro lado, para usar la función integrada de Vim clasificar comando, se empleará un patrón de expresión regular con el comando de clasificación.

:clasificar / \v^ ( . { - } , ) { 2 } /

 

En el comando anterior:

  • \en representa la pestaña vertical
  • ^ indica el comienzo de la línea
  • (.{-},) es un grupo que va en el cual .{-} es una versión no codiciosa de .* y , es el campo de separación
  • {2} está representando las primeras 2 columnas a omitir

Se puede observar que el r La bandera no se usa con el patrón, lo que significa que el patrón omitirá cualquier columna coincidente y ordenará las columnas después del patrón. En este caso, el archivo se ordenará según la tercera columna. Nuevamente en el siguiente ejemplo, para omitir la primera línea, utilicé el rango 2,5.

La distinción básica entre .* y .{-} es que el .{-} procesará el primer algoritmo de coincidencia más corta, mientras .* coincidirá tanto como sea posible. Por ejemplo, en una cadena wxyz el x.*y coincidirá con toda la cadena mientras x.{-}y coincidirá solo con xy.

Ordenar líneas sin distinguir entre mayúsculas y minúsculas

Si ordena líneas que comienzan con letras mayúsculas y minúsculas, el comando de clasificación ordenará primero las líneas con letras mayúsculas. Bueno, para ignorar la distinción entre mayúsculas y minúsculas, utilice el i bandera.

Como puede ver en la siguiente imagen, las líneas ordenadas y sin clasificar con ambos :clasificar y :ordenar yo comandos.

Conclusión

La clasificación en Vim se puede realizar fácilmente utilizando la función integrada de Vim. clasificar dominio. De forma predeterminada, las líneas están ordenadas alfabéticamente; sin embargo, si desea ordenarlas al revés, utilice el botón ! firmar después del comando. El comando sort normalmente ordena todo el búfer; También se puede definir un rango con un separador de coma. El norte La bandera se utiliza para la clasificación numérica, mientras que para eliminar las líneas duplicadas en Se utiliza la bandera. Además, para mejorar el proceso de clasificación, el exterior clasificar El comando también se puede utilizar en Vim.

Para obtener más información sobre la clasificación en Vim, ejecute el :ayuda a ordenar dominio.