Articles

Buscar y reemplazar en Vim

Posted on

Vim es un avanzado y popular editor de texto que viene preinstalado en la mayoría de las distribuciones de Linux. Es un editor de texto basado en la línea de comandos que se utiliza principalmente en los sistemas operativos no basados en la interfaz gráfica de usuario. Es altamente configurable y viene con un montón de características. Un punto significativo con respecto a Vim es que está altamente optimizado para la repetición.

En este artículo, vamos a explicar una de sus características más útiles que es buscar y reemplazar. Con un puñado de configuraciones, puedes buscar lo que quieras a la velocidad del rayo y con una granularidad más fina.

Método #1 Buscar y reemplazar una ocurrencia a la vez (Usando el comando barra y punto)

La forma más sencilla de buscar y reemplazar una palabra en Vim es usando el comando barra y punto. La barra (/) se puede utilizar para buscar una palabra, mientras que el punto (.) se puede utilizar para reemplazar esa palabra.

Siga los siguientes pasos sencillos para buscar y reemplazar cualquier palabra en el editor Vim:

  • Abra el archivo en Vim
  • Pulse la tecla barra (/) junto con el término de búsqueda como «/ término_de_búsqueda» y pulse Enter. Resaltará la palabra seleccionada.
  • A continuación, pulse la tecla cgn para reemplazar la palabra resaltada e introduzca el replace_term
  • Vuelva al modo normal. A continuación, pulse «n» para pasar a la siguiente ocurrencia del término de búsqueda.
  • A continuación, pulse el punto (.) si desea reemplazar la siguiente ocurrencia con el mismo replace_term, de lo contrario, vuelva a pulsar la tecla «n» para pasar a la siguiente ocurrencia.
    • Es el método más rápido y mejor para las funciones básicas de búsqueda y reemplazo, ya que implica sólo unas pocas pulsaciones de teclas y menos interrupción de su trabajo actual. Sin embargo, para buscar una palabra que aparece demasiadas veces, se convertirá en una tarea repetitiva y que requiere mucho tiempo.

      Con Vim, hay otra forma mejor de evitar esta tarea repetitiva que es utilizando el comando sustituto.

      Método #2 Buscar y reemplazar utilizando el comando sustituto

      El comando sustituto se puede utilizar para realizar funciones de búsqueda y reemplazo básicas a avanzadas con un solo comando. La sintaxis de este comando es:

      $ :s/<buscar_término><reemplazar_término>/opción

      Nótese que hay que introducir este comando en modo normal.

      Donde

      • S: significa sustituir
      • buscar_término: la palabra que se quiere buscar y sustituir
      • reemplazar_término: la palabra con la que se quiere sustituir
      • Opción: c (para confirmar), g (reemplazar toda la ocurrencia en una línea), i (para ignorar las mayúsculas y minúsculas)
      • Buscar y reemplazar

        Para realizar una búsqueda y reemplazo básico utilizando el comando sustituir, utilice la siguiente sintaxis:

        :%s/<buscar_término><reemplazar_término>/g

        Este comando reemplazará todas las instancias de buscar_término con el sustituir_término.

        Por ejemplo, este es nuestro texto de muestra:

        «Ubuntu es uno de los sistemas operativos Linux más utilizados. Ubuntu incluye miles de programas útiles. Con la línea de comandos de Ubuntu, puedes realizar casi cualquier tipo de tarea».

        Para sustituir cada aparición de «Ubuntu» por «Debian» en el siguiente texto, se utilizaría el siguiente comando:

        :%s/Ubuntu/Debian/g

        Buscar y reemplazar en una sola línea

        Para buscar y reemplazar la ocurrencia de una palabra sólo en una línea en lugar de en todo el archivo, utilice la siguiente sintaxis:

        :s/<buscar_término></reemplazar_término/g

        Por ejemplo, para reemplazar la ocurrencia de Ubuntu por Debian en el texto de ejemplo anterior, se utilizaría el siguiente comando sin el símbolo %:

        :s/Ubuntu/Debian/g

        Buscar y reemplazar con confirmación

        Si desea que se le pida confirmación antes de reemplazar el término de búsqueda, utilice «c» al final del comando de búsqueda de la siguiente manera:

        :s/<término_de_búsqueda><término_de_reemplazo/gc

        El comando anterior pedirá confirmación antes de cada reemplazo (Introduzca y para sí mientras n para no).

        Buscar y reemplazar sin distinguir mayúsculas y minúsculas

        Cuando se realiza una búsqueda y reemplazo en Vim, por defecto se distingue entre mayúsculas y minúsculas. Puedes realizar una búsqueda sin distinción de mayúsculas y minúsculas añadiendo «i» al final del comando de la siguiente manera:

        :s/<buscar_término><reemplazar_término>

        Por ejemplo, para buscar el término «Ubuntu» independientemente de su caso (UBUNTU, Ubuntu, ubuntu, uBuntu), se utilizaría el siguiente comando:

        :s/ubuntu/debian/gi

        Buscar y sustituir la palabra completa

        Por defecto el comando sustituto busca cualquier coincidencia ya sea parcial o completa. Para buscar el término_de_búsqueda exacto y luego sustituirlo por el término_de_sustitución, encierre el término de búsqueda dentro de «<\N>».

        Por ejemplo, en algunos documentos, se quiere buscar y sustituir la palabra exacta «tú» por «yo». En ese caso, se utilizaría el siguiente comando:

        :s/<you>/me/

        Encontrará la palabra «you» y la sustituirá por «me». Sin embargo, no reemplazará las palabras como «tuyo».

        Buscar y reemplazar palabras entre líneas particulares

        Para buscar una palabra entre las líneas particulares en lugar de una sola línea o todo el archivo, se puede utilizar la siguiente sintaxis:

        :<start_line><end_line>s/<search_term><replace_term>/g

        Por ejemplo, para buscar y reemplazar la ocurrencia de Ubuntu con Debian de las líneas que van de la 3 a la 8 en algún archivo, el comando sería:

        :1,10s/ubuntu/debian/g

        Para buscar y reemplazar la aparición de una palabra desde la línea actual hasta el siguiente número x de líneas, se utilizaría la siguiente sintaxis:

        :s/buscar_término/reemplazar_término/g x

        De forma similar, para buscar y reemplazar la aparición de una palabra desde la línea actual hasta la última línea: se utilizaría la siguiente sintaxis:

        :.,$s/buscar_término/reemplazar_término/g

        CONCLUSIÓN

        En este artículo, hemos aprendido las dos formas de línea de comandos para buscar y reemplazar cualquier palabra en un editor Vim. El primer comando que era usando la barra y el punto es el método más simple y fácil pero resulta ser repetitivo cuando se busca y reemplaza una palabra que aparece muchas veces. El otro comando que es el de sustitución una vez puede parecer difícil y complejo, pero una vez que empiece a practicarlo, lo encontrará extremadamente útil en múltiples escenarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *