Búsqueda de sitios web

8 consejos y trucos interesantes del editor 'Vi/Vim' para todo administrador de Linux - Parte 2


En el artículo anterior de esta serie revisamos 7 consejos y trucos para agregar a tu conjunto de habilidades vi/m. Además de las razones dadas anteriormente, aprender a utilizar eficazmente un editor de texto en Linux es una habilidad esencial para un administrador o ingeniero de sistemas y es una competencia necesaria para aprobar cualquier programa importante de certificación de Linux (como LFCS, LFCE, RHCSA y RHCE). .

Dicho esto, comencemos.

CONSEJO #8: Crea ventanas horizontales o verticales

Este consejo fue compartido por Yoander, uno de nuestros lectores, en la Parte 1. Puedes iniciar vi/m con múltiples divisiones horizontales o verticales para editar archivos separados dentro de la misma ventana principal:

Inicie vi/m con dos ventanas horizontales, con test1 en la parte superior y test2 en la parte inferior.

vim -o test1 test2 

Inicie vi/m con dos ventanas verticales, con test3 a la izquierda y test4 a la derecha:

vim -O test3 test4 

Puede cambiar el cursor de una ventana a otra con la rutina habitual de movimiento vi/m (h: derecha, l: izquierda, j: abajo, k: arriba):

  1. Ctrl+w k – arriba
  2. Ctrl+w j – abajo
  3. Ctrl+w l – izquierda
  4. Ctrl+wh – derecha

CONSEJO #9: Cambie letras, palabras o líneas completas a MAYÚSCULAS o minúsculas

Tenga en cuenta que este consejo solo funciona en vim. En los siguientes ejemplos, X es un número entero.

  1. Para cambiar una serie de letras a mayúsculas, coloque el cursor en la primera letra, luego escriba gUX en modo ex y finalmente presione la flecha derecha en el teclado.
  2. Para cambiar X número de palabras, coloque el cursor al principio de la palabra y escriba gUXw en modo ex.
  3. Para cambiar una línea completa a mayúsculas, coloque el cursor en cualquier lugar de la línea y escriba gUU en modo ex.

Por ejemplo, para convertir una línea minúscula completa a mayúscula, debe colocar el cursor en cualquier lugar de la línea y escribir gUU:

Por ejemplo, para convertir 2 palabras en mayúscula a minúsculas, debes colocar el cursor al principio de la primera palabra y escribir gu2w:

CONSEJO #10: Elimina caracteres, palabras o hasta el principio de una línea en el modo INSERT

Si bien puedes eliminar caracteres o varias palabras a la vez en el modo ex (es decir, dw para eliminar una palabra), también puedes hacerlo en el modo Insertar de la siguiente manera:

  1. Ctrl + h: elimina el carácter anterior al lugar donde se encuentra actualmente el cursor.
  2. Ctrl + w: elimina la palabra anterior al lugar donde se encuentra actualmente el cursor. Para que esto funcione correctamente, el cursor debe colocarse en un espacio vacío después de la palabra que desea eliminar.
  3. Ctrl + u: elimina la línea actual comenzando en el carácter inmediatamente a la izquierda del lugar donde está el cursor.

CONSEJO #11: Mueva o copie líneas existentes a otra línea del documento

Si bien es cierto que puedes usar los conocidos comandos dd, yy y p en modo ex para eliminar, tirar (copiar) y pegar líneas, respectivamente, eso solo funciona cuando el cursor está colocado donde deseas realizar esas operaciones. . La buena noticia es que con los comandos copiar y mover puedes hacer lo mismo independientemente de dónde esté colocado actualmente el cursor.

Para el siguiente ejemplo usaremos un poema corto titulado “Forever” de Terri Nicole Tharrington. Para comenzar, haremos que vim muestre los números de línea (:set nu en modo Comando; considere esto como un consejo adicional). Usaremos :3copy5 (también en modo Comando) para copiar la línea 3 debajo de la línea 5:

Ahora, deshaga el último cambio (Esc + u – ¡otro consejo adicional!) y escriba :1move7 para reemplazar la línea 7 con la línea 1. Tenga en cuenta cómo se desplazan las líneas 2 a 7 arriba y la antigua línea 1 ahora ocupa la línea 7:

CONSEJO #12: Cuente las coincidencias resultantes de una búsqueda por patrón y pase de una ocurrencia a otra

Este consejo se basa en el comando sustituto (consejo #7 en la Parte 1 de esta serie), con la excepción de que no eliminará nada ya que el comportamiento sustituto es anulado por la opción n, lo que da como resultado el recuento de apariciones del patrón especificado:

¡Asegúrate de no omitir ninguna de las barras diagonales!

:%s/pattern//gn 

Por ejemplo,

:%s/libero//gn

Para pasar de una aparición del patrón a la siguiente en el modo ex, presione n (N minúscula). Para pasar a la instancia anterior, presione N.

CONSEJO #13: Abra vi/m directamente en una línea específica

De forma predeterminada, cuando inicia vi/m, el cursor se coloca inicialmente en la última línea que se editó. Si desea abrir el programa y colocar el cursor directamente en una línea específica, puede utilizar el siguiente truco:

vim filename +line_number

Por ejemplo, abra forever.txt y coloque el cursor en la línea 6:

vim forever.txt +6

Modifiquemos un poco este ejemplo. Supongamos que queremos abrir el archivo en la línea donde aparece la tercera aparición del patrón:

vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

Echemos un vistazo más de cerca a lo que hace el comando anterior:

  1. grep -in nombre de archivo de patrón: muestra todas las líneas del nombre de archivo donde ocurre el patrón, con el número de línea al comienzo de cada línea de salida.
  2. sed -n 3p: muestra la tercera línea de la salida del canal anterior.

Finalmente,

  1. cut -d: -f1 devuelve el primer campo de la canalización anterior con dos puntos (:) como separador de campo.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Luego, el resultado del comando anterior se pasa a vi/m para abrir el programa en la línea especificada.

CONSEJO #14: Personalizando su entorno vi/m

Si usa vi/m para editar archivos de configuración o escribir código, querrá poder mostrar los números de línea cuando abra el programa por primera vez y configurar la sangría automática para que cuando presione Entrar tecla, el cursor se colocará automáticamente en la posición adecuada. Además, es posible que desee personalizar la cantidad de espacios en blanco que ocupa una pestaña.

Si bien puede hacer esto cada vez que inicia vi/m, es más fácil configurar estas opciones en ~/.vimrc para que se apliquen automáticamente:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

Para obtener más opciones para personalizar su entorno vi/m, puede consultar la documentación de vim en línea.

SUGERENCIA #15: Obtenga ayuda/opciones generales de Vim con vimtutor

Si en algún momento necesita mejorar sus habilidades generales de vi/m, puede iniciar vimtutor desde la línea de comando, que mostrará una ayuda completa de vi/m a la que puede consultar tantas veces como desee. sin la necesidad de iniciar un navegador web para buscar cómo realizar una determinada tarea en vi/m.

vimtutor

Tenga en cuenta que puede navegar o buscar el contenido de vimtutor como si estuviera navegando en un archivo normal en vi/m.

Resumen

En esta serie de dos artículos, he compartido varios consejos y trucos de vi/m que deberían ayudarle a ser más eficaz a la hora de editar texto utilizando herramientas de línea de comandos. Estoy seguro de que debes tener otros, así que siéntete libre de compartirlos con el resto de la comunidad mediante el siguiente formulario. Como siempre, preguntas y comentarios también son bienvenidos.