-->

Inserción y Borrado de Texto en vi/vim

Objetivo:

Aprender a entrar en modo edición desde distintas posiciones del texto en vi/vim (i, a, A, I, o, O) y a utilizar los comandos básicos de borrado de caracteres, palabras y líneas (x, X, dw, d0, dd), incluyendo el uso de números delante de un comando para repetirlo.

Escenario:

  • Herramientas: Terminal de Linux y un sistema Debian o basado en Debian, con el editor vi o vim instalado.
  • Conceptos clave: modo comando, modo edición, puntos de inserción, borrado de caracteres, borrado de palabras, borrado de líneas, repetición de comandos con números.

Instrucciones:

Fase 1: Entrar y salir del modo edición

  • Abre con vi un fichero de texto de prueba con algún contenido (puedes reutilizar el fichero de la práctica anterior o crear uno nuevo):
  • vi practica_vi.txt
  • Sitúa el cursor en cualquier posición y entra en modo edición pulsando i.
  • Escribe unas cuantas palabras cualquiera.
  • Vuelve al modo comando pulsando Esc y comprueba que ahora las teclas se interpretan de nuevo como comandos y no como texto.

Fase 2: Distintos puntos de inserción

  • En modo comando, sitúa el cursor sobre una letra cualquiera y pulsa a para entrar en modo edición justo después de esa letra. Escribe algo y vuelve a Esc.
  • Sitúa el cursor en cualquier parte de una línea y pulsa A (mayúscula) para saltar directamente al final de la línea en modo edición. Escribe algo al final y vuelve a Esc.
  • Sitúa el cursor en cualquier parte de una línea y pulsa I (mayúscula) para saltar al principio de la línea en modo edición. Escribe algo al principio y vuelve a Esc.
  • Sitúa el cursor sobre una línea y pulsa o (minúscula) para abrir una línea nueva justo debajo, en modo edición. Escribe algo y vuelve a Esc.
  • Sitúa el cursor sobre una línea y pulsa O (mayúscula) para abrir una línea nueva justo encima, en modo edición. Escribe algo y vuelve a Esc.
  • Guarda los cambios sin salir del editor:
  • :w

Fase 3: Borrado de caracteres

  • En modo comando, sitúa el cursor sobre un carácter que quieras eliminar y pulsa x. Observa que el carácter bajo el cursor desaparece.
  • Sitúa el cursor justo después de varios caracteres que quieras eliminar y pulsa X (mayúscula) un par de veces. Observa que el borrado se produce hacia atrás, como si fuera la tecla de retroceso.
  • Sitúa el cursor sobre un carácter y antepón un número antes de x (por ejemplo, 3x) para borrar varios caracteres seguidos de una sola vez.

Fase 4: Borrado de palabras

  • Sitúa el cursor al principio de una palabra y pulsa dw para borrarla por completo.
  • Sitúa el cursor en mitad de una palabra (no al principio) y pulsa dw; observa que solo se borra desde la posición del cursor hasta el final de la palabra.
  • Sitúa el cursor al principio de varias palabras seguidas y antepón un número antes de dw (por ejemplo, 3dw) para borrar varias palabras de una vez.

Fase 5: Borrado hasta el inicio de línea y de líneas completas

  • Sitúa el cursor al final de una serie de palabras dentro de una línea y pulsa d0 para borrar todo el contenido desde esa posición hasta el principio de la línea.
  • Sitúa el cursor sobre cualquier línea completa y pulsa dd para eliminarla por completo.
  • Guarda los cambios y sal del editor:
  • :wq

Preguntas de reflexión:

  1. ¿Qué diferencia existe entre pulsar i y pulsar a para entrar en modo edición?
  2. ¿Qué hacen las teclas A e I (mayúsculas) respecto a la posición de inserción en la línea?
  3. ¿Qué diferencia existe entre o minúscula y O mayúscula?
  4. ¿Qué diferencia hay entre x y X a la hora de borrar caracteres?
  5. ¿Qué efecto tiene anteponer un número a un comando de borrado, como en 3x o 3dw?
  6. ¿Qué ocurre si ejecutamos dw estando situados en mitad de una palabra en lugar de al principio?
  7. ¿Para qué sirve el comando d0?
  8. ¿Qué diferencia existe entre borrar el contenido de una línea con d0 y borrar la línea completa con dd?
  9. ¿Por qué es necesario pulsar Esc antes de ejecutar comandos como x, dw o dd?
  10. ¿Qué ventaja ofrece poder combinar números con comandos de borrado en vi frente a repetir el mismo comando varias veces?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Diferencia entre i y a?

i entra en modo edición insertando el texto justo antes de la posición del cursor, mientras que a lo hace justo después de la posición del cursor.


2. ¿Qué hacen A e I?

A mueve el cursor al final de la línea actual y entra en modo edición desde ahí. I mueve el cursor al principio de la línea actual y entra en modo edición desde ahí.


3. ¿Diferencia entre o y O?

o abre una nueva línea justo debajo de la línea actual y entra en modo edición en ella. O abre una nueva línea justo encima de la línea actual y entra en modo edición en ella.


4. ¿Diferencia entre x y X?

x borra el carácter situado justo debajo del cursor, de forma similar a la tecla suprimir. X borra el carácter situado justo antes del cursor, de forma similar a la tecla de retroceso.


5. ¿Qué efecto tiene anteponer un número?

Hace que el comando que le sigue se repita ese número de veces; por ejemplo, 3x borra tres caracteres seguidos y 3dw borra tres palabras seguidas.


6. ¿Qué ocurre con dw en mitad de una palabra?

Solo se borra la parte de la palabra que va desde la posición del cursor hasta el final de esa palabra, no la palabra completa.


7. ¿Para qué sirve d0?

Borra todo el contenido de la línea desde la posición actual del cursor hasta el principio de dicha línea.


8. ¿Diferencia entre d0 y dd?

d0 borra solo una parte de la línea (desde el cursor hasta el principio), dejando intacto el resto de la línea. dd borra la línea completa, independientemente de en qué posición se encuentre el cursor.


9. ¿Por qué hay que pulsar Esc antes?

Porque estos comandos solo se interpretan como tales en modo comando; si estuviéramos en modo edición, las mismas teclas se insertarían como texto normal en el documento.


10. ¿Qué ventaja ofrece combinar números con comandos?

Permite realizar operaciones repetidas de forma mucho más rápida y precisa, evitando pulsar el mismo comando varias veces y reduciendo la posibilidad de errores al editar el documento.


Ficha de Laboratorio: Inserción y Borrado de Texto en vi/vim

Instrucciones de entrega:

  1. Rellena los campos y responde en este formulario desde tu navegador.
  2. Pulsa el botón de imprimir al final de la página.
  3. Selecciona "Guardar como PDF" en el diálogo de impresión.
  4. Entrega el archivo PDF en el aula virtual.

Alumno/a:      Fecha:      

Grupo:


Completa la ficha realizando las siguientes actividades:

  1. Entra en modo edición con i, escribe algo y vuelve al modo comando con Esc.
    Copia aquí el texto que escribiste:

    Explica cómo comprobaste que habías vuelto al modo comando:
  2. Prueba los distintos puntos de inserción: a, A, I, o y O.
    Para cada una de las cinco teclas, explica brevemente desde qué posición empieza a insertar texto:
  3. Borra caracteres sueltos con x y con X.
    Explica la diferencia que observaste entre ambos comandos:

    Indica qué ocurrió al usar un número delante de x (por ejemplo 3x):
  4. Borra palabras completas con dw, tanto al principio como en mitad de una palabra.
    Explica qué diferencia observaste según la posición del cursor dentro de la palabra:

    Indica qué ocurrió al usar un número delante de dw (por ejemplo 3dw):
  5. Prueba el comando d0 en mitad de una línea.
    Describe qué parte del texto desapareció:
  6. Borra una línea completa con dd y guarda los cambios.
    Escribe el comando utilizado para guardar y salir del editor:

    Explica la diferencia entre dd y d0: