5.8.- Uso del editor vi

El editor vi es un editor de texto que maneja en memoria el texto entero de un archivo. Es el editor clásico de UNIX/LINUX (se encuentra en todas las versiones). Puede usarse en cualquier tipo de terminal con un mínimo de teclas, lo cual lo hace difícil de usar al enfrentarse por primera vez al mismo. Se diseño para ser sencillo y pequeño.

vi_nota

 Existen tres modos o estados de vi:

  • Modo comando.- Este es el modo en el que se encuentra el editor cada vez que se inicia. Las teclas ejecutan acciones (comandos) que permiten mover el cursor, ejecutar comandos de edición de texto, salir de vi, guardar cambios, etc. Este modo acepta comandos, que se suelen introducir como letras sueltas. Por ejemplo, tanto i como a pasan a modo inserción, y o abre una línea bajo la actual.
  • Modo inserción o texto.- Este es el modo que se usa para insertar el texto. Existen varios comandos que se pueden utilizar para ingresar a este modo. Una excepción importante es la tecla Esc, que hace que se salga del modo inserción para regresar al modo comando.
  • Modo línea o ex.- sirve para manipular ficheros (incluyendo guardar su fichero actual y ejecutar programas externos), utilice el modo ex. Para pasar a modo ex desde la línea de comando de Vi, escriba dos puntos (:), por lo general, seguidos directamente por el nombre del comando del modo ex que desee utilizar. Tras la ejecución de dicho comando, Vi regresará automáticamente al modo comando.

vi_truco

Veamos el uso de vi con un archivo de ejemplo lilo.conf (suele estar en /etc/lilo.conf). Evita editar editar el lilo real, si comete un error, su sistema podría dejar de iniciarse, trabaje con una copia en una carpeta personal (por ejemplo cree una carpeta llamada Practicas y dentro copie el fichero lilo de su equipo o algún otro fichero diferente).

Inicio de Vi

vi.- Abre la ventana de edición sin abrir ningún archivo.

vi_inicio

vi archivo1.- Edita el archivo archivo1 si ya existe, de lo contrario, lo crea. Evidentemente se debe indicar el camino (path) que conduce al archivo (si existe) o el camino que conduce al directorio donde se desea crear el archivo (si este no existe).

vi_archivo

 Para añadir una nueva entrada, duplicamos las líneas que comienzan con la línea image= y modificamos los duplicados. Seguiremos los siguientes pasos:

vi_yy

vi_yanked

vi_cursor_2

vi_p

Ahora que tenemos una copia de una stanza image= modificaremos la copia para que apunte a un nuevo kernel:

vi_insertar_1

vi_1

Deberíamos cambiar la etiqueta (label=linux) por una con un nombre personalizado, por ejemplo, myKernel, que sustituirá a la etiqueta linux existente.

vi_3 Por último salimos del modo de inserción pulsando la tecla Esc. Guardamos el fichero y salimos del editor pulsando :wq, que es un comando del modo ex, que veremos más adelante.

vi_5

Vamos a ver los otros comandos disponibles, que, lo más probable, tengamos que utilizar alguna vez.

  • Cambio de mayúsculas y minúsculasvi_6
  • Deshacervi_7
  • Nuevo texto en nueva líneavi_8
  • Buscarvi_8 vi_9 vi_º0

En resumen observe y ensaye con los comandos de las tablas siguientes:

vi_tablas

Buscar texto:

vi_buscar

Salir:

vi_salir

Es importante destacar que todo lo que se borra queda almacenado en un buffer (área temporal de memoria), de modo que si se borró algo por error, puede volver a escribirse (si se hace antes de realizar otros cambios), es decir, inmediatamente luego de eliminar el texto por error. Esto se hace simplemente ejecutando el comando p.


Cortar y pegar:

Esto implica mover partes del archivo de un lugar a otro del mismo. Para esto se debe:

  • Cortar el texto que se desea mover utilizando alguno de los comandos usados para borrar texto.
  • Mover el cursor (con alguno de los comandos utilizados para desplazar el cursor en el texto) hasta el lugar donde se desee pegar el texto.
  • Pegar el texto con el comando p.

Copiar y pegar:

Esta operación difiere de la anterior. En este caso lo que se hace es repetir partes del texto
en otro lugar del archivo. Para esto se debe:

  • Utilizar el comando yy, cuya función es copiar la línea donde se encuentra situado el
    cursor.
  • Mover el cursor (con alguno de los comandos utilizados para desplazar el cursor en el
    texto) hasta el lugar donde se desee pegar el texto.
  • Pegar el texto con el comando p.

Deshacer cambios:

Se puede deshacer el último cambio realizado, utilizando el comando u.

Modo texto:

En este modo se ingresa el texto deseado. Para pasar de modo texto a modo comando simplemente se debe apretar la tecla Esc.

Modo línea:

Para ingresar al modo línea desde el modo comando, se debe utilizar alguna de las siguientes teclas:
/, ?, o :

Para volver al modo comando desde el modo última línea, se debe apretar la tecla Enter (al finalizar el comando) o la tecla Esc (que interrumpe el comando).

Para más información vea la página man del editor vi.