Introducción
Saber rehacer es una habilidad fundamental que todo usuario de Vim/Vi debería tener. No importa el editor de texto, la posibilidad de deshacer y rehacer los cambios es una característica esencial.
En este tutorial, aprende a deshacer y rehacer en Vim/Vi con ejemplos de comandos.

Cómo deshacer cambios en Vim / Vi
Vim deshace los cambios por entradas . Una entrada puede ser cualquier cosa que haga dentro de una sesión en el modo de inserción. Cualquier cambio realizado después de presionar i
(para pasar al modo de inserción) y Esc
(para volver al modo normal) se consideran una entrada.
Además, una entrada puede ser un comando que usa después de presionar Esc
. Esto incluye comandos como eliminar líneas y copiar y pegar texto en Vim.
Generalmente, cada vez que cambia de un modo a otro, se crea una nueva entrada.
Deshacer último cambio
1. Primero, cambie al modo normal presionando Esc
.
2. Luego, deshaga los cambios realizados en la última entrada usando uno de los siguientes comandos:u
, :u
, :undo
.
3. Se eliminarán todos los cambios y adiciones realizados en la entrada anterior.
Por ejemplo, en el archivo que ve a continuación, cada línea representa una entidad separada. Ejecutando :undo
comando se eliminará la última línea del texto.

Una vez que pulses Intro , se elimina la última línea y el resultado indica que hay 1 line less
.

Deshacer varios cambios
1. Presione Esc
para asegurarse de que está en modo normal (comando) antes de ejecutar cualquier comando de Vim.
2. Para deshacer múltiples a la vez, debe especificar la cantidad de cambios que desea deshacer en el archivo. Esto se hace agregando el número antes de la u
comando siguiendo la sintaxis:[number]u
.
Para ilustrar, en nuestro archivo Vim de muestra, ejecutamos el comando:
4u
Dado que cada línea se agregó como una sola entidad, 4u
deshace las últimas 4 líneas del texto.

El resultado debe indicar que hay 4 fewer lines
.
Deshacer los últimos cambios en la línea
1. Pasa al modo de comando con Esc
.
2. Deshaga los últimos cambios dentro de una línea con el comando U
. Asegúrate de que esté en mayúsculas .
En nuestro ejemplo, el comando deshace los cambios realizados en la última línea donde se agregó la última oración en una entrada posterior.

Rehacer cambios en Vim / Vi
1. Para rehacer en Vim, debe estar en el modo normal (presione Esc
).
2. Ahora puede rehacer los cambios que ha deshecho previamente:mantenga presionada la tecla Ctrl
y presiona r
.
Vim rehará la última entrada deshecha.
Rehacer múltiples cambios
1. Regrese al modo de comando con Esc
.
2. Rehacer varias operaciones de deshacer con un solo comando usando la sintaxis:[number]Ctrl+r
. Tienes que escribir el número de rehaceres que desea realizar, mantenga presionado Ctrl
y escribe r
.
Lista de ramas de deshacer
Mientras trabaja en un archivo en Vim / Vi, lo más probable es que deshaga un cambio y luego escriba sobre agregando nuevos cambios. Este cambio deshecho no desaparece por completo. De hecho, se convierte en una sucursal a la que puede encontrar y acceder más adelante.
Para mostrar las ramas de deshacer, ejecute el comando:
:undolist
El resultado que reciba debe ser similar a nuestro ejemplo:

Consta de cuatro columnas:
- Número. El número de cambio.
- Cambios. El número de cambios realizados en la entidad.
- Cuándo. La hora en que se realizó el cambio.
- Guardado. Si el archivo se ha almacenado en el disco y dónde.