¿Cómo se usa el árbol de cambios en vim?


14

¿Es posible recuperar la rama de cambios que "abandoné"? Por ejemplo, estoy deshaciendo varias operaciones usando u, luego estoy haciendo un cambio en el modo de inserción. Pero luego me doy cuenta de que no quiero tener este cambio, prefiero volver a donde estaba al principio (antes de deshacer).

¿Se pierden estos cambios para siempre?

Respuestas:


12

Para navegar por el árbol de deshacer, su mejor opción es usar el complemento Gundo . Esto crea una nueva ventana dividida con enlaces especiales para saltar a diferentes ramas dentro del árbol de deshacer, así como un panel de vista previa que muestra exactamente lo que cambió entre cada nodo en el árbol.


Otra opción sería UndoTree.
musicmatze

12

Para casos simples como este, simplemente puede presionar g-.

Esencialmente, lo que esto hace es recorrer la lista de cambios cronológicamente (tratando a ucomo un cambio real), en lugar de linealmente (como con u/ <C-r>).

Por ejemplo, si ha insertado algunas líneas y presiona g-, esto sucede:

demostración


¿Cómo creaste el gif animado?
guido

44
@ guido Usé una herramienta personalizada llamada mkcast .
Pomo de la puerta

2

No, no puedes retroceder y avanzar en el árbol. La mejor manera es usar un complemento para este trabajo.

Otro complemento es el Undotree . Es como Gundo , pero con algunas diferencias:

  1. Se necesita una implementación de vimscript pura y no se necesitan bibliotecas de terceros (como python), no se preocupe por el rendimiento, no es un gran problema para vim manejar esto. La única dependencia es la herramienta 'diff' que siempre se envía con vim e incluso sin 'diff' todavía puede usar la mayoría de las características de este script.
  2. Árbol de deshacer actualizado en tiempo real. Una vez que realice los cambios, el árbol de deshacer se actualizará simultáneamente.
  3. Varias marcas útiles, como el conjunto de cambios actual, el próximo conjunto de cambios rehacer, el conjunto de cambios guardado, etc.
  4. Alternar entre la marca de tiempo relativa y la marca de tiempo absoluta.
  5. Ventana de deshacer actualizada en tiempo real.
  6. Capacidad para borrar el historial de deshacer.
  7. Más personalizable

44
¿No es esta respuesta directamente refutada por la publicación de doorknob ?
Caleb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.