En vim, me gustaría deshacer a través todos los cambios en todos los tampones, en orden cronológico.vim - deshacer en todos los tampones/ventanas/abrir archivos etc
por ejemplo, en una sesión de vim normalmente tengo muchas pestañas abiertas, con muchas ventanas en cada pestaña. Usando u
para deshacer (o g;
/g,
para moverse a través de la lista de cambios), vim se mueve a través de los cambios realizados en ese buffer, incluso si hay cambios realizados más recientes en otros almacenamientos intermedios. (Lo cual admito, es lo que quiero la mayoría del tiempo.)
¿Pero hay una forma de retroceder a través de los cambios en todos los buffers en orden cronológico? (Imagino que vim saltaba de una pestaña a otra, lo que estaría bien.)
¿Por qué sería útil? ... sobre todo cuando reanudo la codificación después de un descanso, puedo recordarme a mí mismo "dónde estoy haciendo", es decir, todos los cambios que hice la última vez.
(Usando MacVim 7.3)
ACTUALIZACIÓN: respuestas sobre el uso de git/mercurial hacer buenos puntos (gracias sobre todo para git stash
), pero todavía me iba a encontrar esta característica muy útil, ya que me da un paso atrás a través de los cambios recientes, en orden, con coloreado de sintaxis, dentro de vim etc.)
Argumentaría que los registros de confirmación son mejores indicadores de progreso que cualquier otra cosa. Incluso si tiene cambios sin terminar, es posible agregar un mensaje a 'git stash'. – derekerdmann
FTR Estoy de acuerdo con el sentimiento general aquí: use VCS. Mejor aún, ¡use DVCS y microcommit! – sehe
Otro caso de uso: Acabo de pasar 5 minutos refactorizando demasiado agresivamente. Ahora un montón de pruebas unitarias están fallando y no tengo idea de lo que rompí. Quiero deshacer hasta que las pruebas pasen nuevamente. Sí, si pensé en verificar el control de la versión antes de refactorizar, hubiera estado bien, pero no pensé en eso. – alexanderbird