Conceptos básicos de búsquedas en el editor #Vim

Vim ofrece varias opciones para realizar búsquedas de cadenas de texto en nuestros documentos. Veamos las opciones básicas.

Una tarea básica de un editor de texto, es la opción de realizar búsquedas en todo nuestro archivo de una cadena de texto. Vemos cómo realizar esas búsquedas en el editor Vim.

Este artículo viene a engrosar la pequeña lista de artículos que vengo dedicando al editor Vim con las cosas que voy aprendiendo y que puedes consultar en este enlace:

Suponemos que tenemos un archivo abierto en nuestro editor Vim y queremos buscar una palabra en todo el texto. Mientras que en otros editores y aplicaciones estamos acostumbrados a usar Ctrl+F en Vim se realiza de modo distinto y con muchas otras opciones.

Para realizar la búsqueda de una cadena de texto, en modo normal, escribiremos lo siguiente

/texto

Con la barra / indicamos que queremos realizar una búsqueda desde donde está el cursor hacia adelante en el archivo del texto indicado. Si en vez de hacer una búsqueda hacia adelante queremos realizarla hacia atrás en vez de la barra tendremos que utilizar el signo ? así:

?texto

Pulsamos Enter y Vim nos muestra la primera coincidencia, para seguir recorriendo el texto en la dirección que hemos indicado pulsamos la tecla n y continuará mostrando la siguiente coincidencia.

Si queremos revertir la dirección de búsqueda de las siguientes coincidencias, pulsaremos N y nos mostrará la coincidencia anterior. Tanto n como N funcionan con / y con ? pero en sentido inverso. Es más sencillo probarlo, que explicarlo, ya verás… 🙂

Después de pulsar / mientras estamos escribiendo el texto a buscar, Vim resalta la primera coincidencia que ha encontrando, si la palabra en cuestión es la que queremos pulsando Ctrl+r Ctrl+w nos copiará dicha palabra en el comando y pulsaremos Enter para ir buscándola.

Insensible

De manera predeterminada Vim hace las búsquedas diferenciando entre mayúsculas y minúsculas, por lo que no sería lo mismo Texto que texto. Pero yo prefiero que no sea así.

Por eso en el archivo .vimrc de configuración tengo añadido lo siguiente:

set ignorecase
set smartcase

Con esto lo que hacemos es que si buscamos una cadena como texto no encontrará coincidencias si encuentra Texto o TEXTO.

Mientras que con smartcase, si en nuestra búsqueda buscamos Texto al tener una letra en mayúscula esto hará que sólo encuentre la cadena que coincide con ella.

Historial

Si queremos repetir una búsqueda que ya hemos realizado con anterioridad, Vim guarda un historial de nuestras búsquedas, por lo que solamente tendremos que escribir / y después con las flechas de cursor hacia arriba o abajo podremos ir navegando por todas las búsquedas que hemos realizado.

Buscando caracteres especiales

Imaginemos que queremos buscar una cadena como :/ en todo el texto. Para realizar búsquedas de caracteres especiales, estos hay que “escaparlos” anteponiendo a ellos la contrabarra. Es decir que para realizar la búsqueda anterior escribiremos:

/\:\/

Como véis antes de cada símbolo : y / hemos añadido una contrabarra para “escapar” esos símbolos especiales. Algo que no he conseguido averiguar, es cómo realizar una búsqueda de la cadena \

Si sabéis la solución por favor compartidla en los comentarios! 🙂

Otras opciones rápidas

Estando en el texto, si queremos buscar la palabra sobre la que actualmente está el cursor, pulsando * hará que se busque esa palabra hacia adelante en el texto.

Si por el contrario queremos buscar la palabra sobre la que está el cursor pero hacia atrás en el texto, pulsaremos sobre # para realizar la búsqueda.

Conclusión

Como véis el uso de búsquedas en Vim es sencillo, y con muchas opciones, aunque aquí hemos visto solo las más básicas y las más utilizadas.

5 pensamientos en “Conceptos básicos de búsquedas en el editor #Vim

  1. La contrabarra se busca escapando el propio carácter de escape: /\. Ej.: si buscamos cad\ena encontrará en el texto cad\ena, cad\enas, etc.

    En el caso de que la contrabarra sea el último carácter de la búsqueda (ojo, en la búsqueda, no en el texto) no hace falta escaparla. Ej.: si buscamos cad\ encontrará en el texto cad\ pero también cad\ena, etc.

    Pero lo mejor, para no liarse, es escaparla siempre.

    • Al publicar el comentario convierte dos contrabarras seguidas en una sola.

      «La contrabarra se busca escapando el propio carácter de escape: /\ [Deberían mostrarse una barra seguida de dos contrabarras]. Ej.: si buscamos cad\ena encontrará en el texto cad\ena [deberían mostrarse dos contrabarras], cad\enas [aquí está bien que muestre solo una contrabarra], etc.»

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.