Aprende Consejos y Trucos Útiles de ‘Vi/Vim’ para Principiantes – Parte 1

La necesidad de aprender a usar editores de texto en Linux es innegable, ya que cada administrador de sistema lidia diariamente con archivos de configuración (texto plano), y la mayoría de las veces esto se hace puramente utilizando una o más herramientas desde una interfaz de línea de comandos (como nano, vim o emacs).

Mientras que nano es quizás más adecuado para usuarios nuevos, vim o emacs son la herramienta de elección para usuarios más experimentados debido a sus capacidades avanzadas.

Pero hay otra razón por la que aprender a usar uno de estos editores de texto debería ser una prioridad para ti: puedes encontrarte con un servidor solo de CLI o tener un problema con el administrador de escritorio en tu servidor o escritorio Linux basado en GUI y el único recurso para examinarlo y editar archivos de configuración es la línea de comandos.

Entre este artículo y el próximo de esta serie de 2 artículos, revisaremos 15 consejos y trucos para mejorar tus habilidades con vim. Se asume que ya estás familiarizado con este editor de texto.

Si no lo has hecho aún, hazte un favor y familiarízate con vim antes de continuar: es posible que quieras consultar cómo usar el editor de texto vim para obtener una guía muy detallada sobre empezar con vim.

1. Acceder a la ayuda en línea en Vim

Después de abrir vim, presiona F1 o usa :h en el modo ex para entrar en la ayuda en línea. Puedes ir a una sección o tema específico colocando el cursor sobre él y luego presionando Ctrl+] (Ctrl, luego el corchete cuadrado de cierre).

Después de terminar, presiona Ctrl+t para volver a la pantalla anterior. Alternativamente, puedes buscar un tema o comando específico con :h <tema o comando>.

Por ejemplo,

:h x 

mostrará la ayuda para el comando x (eliminar):

Vi Editor Online Help

y

:h substitute

mostrará la ayuda sobre el comando substitute (nuestro último consejo en este artículo).

2. Agregar marcadores dentro del editor Vim

Si te encuentras editando un archivo que es más grande que una pantalla, apreciarás la funcionalidad proporcionada por los marcadores. Puedes pensar en un marcador en vim como un marcador de página: una vez que lo colocas en algún lugar, puedes regresar a él rápidamente y fácilmente.

Supongamos que estás editando un archivo de configuración de 300 palabras y por alguna razón necesitas cambiar repetidamente entre las líneas 30 y 150, por ejemplo.

Primero, ve a la línea #30 ingresando :30 en modo ex, luego regresa al modo de comando y presiona ma (m, luego a) para crear una marca llamada “a” en la línea 30.

Luego ve a la línea 250 (con :250 en modo ex) y presiona `a (acento invertido, luego a) para volver a la marca a en la línea 30.

Puedes usar letras minúsculas y mayúsculas para identificar marcas en vim (ahora repite el proceso para crear una marca llamada A en la línea #250).

Puedes ver tus marcas con

:marks aA
Marks Usage in Vim Editor

Como puedes ver, cada marca se referencia mediante una posición específica de línea/columna en el archivo, no solo por línea.

3. Limpieza de Código sin Esfuerzo en Vim

Supongamos que estás editando un script de shell y te das cuenta de que el desarrollador anterior fue bastante descuidado en cuanto a la indentación. Veamos cómo puedes solucionarlo con un par de comandos de vim.

Primero, selecciona un bloque visual colocando el cursor al principio del bloque y luego presionando Ctrl+v (Ctrl, luego v).

  • Para indentar hacia la izquierda: presiona <j
  • Para indentar hacia la derecha: presiona <j

Luego presiona el comando . (punto) para repetir la indentación. El bloque seleccionado se moverá hacia la derecha o hacia la izquierda con solo una pulsación de tecla.

Otro ejemplo clásico de usar el comando punto es cuando necesitas borrar una serie de palabras: coloca el cursor en la primera palabra que deseas eliminar, luego presiona dw.

Para continuar eliminando las palabras siguientes, simplemente presiona . (más corto y más fácil que repetir dw varias veces).

4. Inserción de caracteres Unicode en Vim

Si tu disposición de teclado no te permite insertar fácilmente caracteres Unicode especiales en un archivo, o si te encuentras frente a un servidor con configuraciones de idioma diferentes a las que estás acostumbrado, este truco te será útil.

Para hacer esto, presiona Ctrl+v en modo de inserción seguido de la letra u y el código numérico hexadecimal para el carácter que deseas insertar.

Puedes consultar los gráficos Unicode para obtener una lista de caracteres especiales y sus códigos numéricos correspondientes.

Por ejemplo,

Ctrl+v followed by returns
u0040 @
u00B5 μ
u20AC

5. Incorporando la salida de comandos externos en Vim

Habrá momentos en los que necesitarás insertar la salida de comandos externos directamente en un archivo que estés editando con vim.

Por ejemplo, a menudo creo una variable llamada DIR en mis scripts para almacenar la ruta absoluta al directorio donde reside el script para usarlo más tarde en el script.

Para hacer eso, uso:

:r! pwd 

en modo ex. Así, se inserta el directorio de trabajo actual.

Otro ejemplo: si necesitas usar la puerta de enlace predeterminada en algún lugar de un script, puedes insertarla fácilmente en el archivo actual sin salir de vim de la siguiente manera:

:!r ip route show | grep default | cut -f 3 -d " "

6. Anexar Contenidos de un Archivo Externo en Vim

Si necesitas agregar el contenido de un archivo separado al que estás editando actualmente, la sintaxis es similar al consejo anterior. Solo omite el signo de exclamación y estarás listo.

Por ejemplo, para copiar el contenido de /etc/passwd:

:r /etc/passwd

Puede resultarte útil este consejo cuando necesites modificar archivos de configuración pero quieras conservar los originales para volver a los “ajustes de fábrica”, por así decirlo.

7. Buscar y Reemplazar una Palabra en Vim

Una vez, durante un examen, me pidieron que abriera un archivo de texto grande que contenía datos aleatorios. La tarea asignada consistía en reemplazar cada ocurrencia de la palabra Globo con Tierra (sí, aún recuerdo las palabras exactas).

Para aquellos familiarizados con sed, esto les resultará familiar: en modo ex, escribe:

:%s/old/new/g

donde antiguo es el patrón a buscar y nuevo es la cadena que lo reemplazará.

En el caso descrito anteriormente, utilicé:

:%s/Globe/Earth/g

para hacer el trabajo.

¿Y qué pasa si quieres que se te solicite antes de hacer sustituciones? Fácil. Solo agrega una c al final del comando anterior, de la siguiente manera:

:%s/old/new/gc

Las ocurrencias del patrón se resaltarán y se te preguntará si quieres reemplazarlo con la nueva cadena:

:%s/gacanepa/me/gc
Search and Replace String in Vim

donde

  • y: yes
  • n: no
  • a: substitute all
  • q: quit
  • l: substitute this occurrence and quit
  • ^E (Ctrl+E): Desplazar hacia arriba una pantalla
  • ^Y (Ctrl+Y): Desplazar hacia abajo una pantalla
Resumen

En este artículo, hemos comenzado a revisar algunos consejos y trucos de vim para agregar a tus habilidades de edición de texto. Probablemente pensarás en varios otros, así que compártelos en el formulario de comentarios a continuación y los consideraré para cubrirlos en el próximo y último artículo de esta serie de vim.

Source:
https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/