viernes, 20 de julio de 2018

Deshacer y rehacer con menos riesgos

Me pasa muchas veces, cuando estoy programando algo suficientemente complicado como para no tener claro de entrada cual es la mejor solución, que a lo largo de la sesión escribo y borro varias alternativas. Y muchas veces ocurre, que después de probar la enésima versión sin éxito me doy cuenta de que en realidad la mejor era la primera, la tercera, o alguna de las anteriores, para el caso da igual.

Sin embargo, como ninguna versión funcionaba lo suficientemente bien de entrada, ninguna fue commiteada al repo, así que probablemente ya no las tengo... ¿o si?

¿Qué hago? Usualmente, aplico deshacer (Ctrl+Z) hasta llegar a la versión vieja, con muuuucho cuidado copio la parte que me interesa, y luego aplico rehacer (Ctrl+Shift+Z) hasta volver al "presente" y pegarla. Digo que con mucho cuidado, porque si por algún error hago algún cambio en una versión vieja, pierdo la posibilidad de rehacer.

Sí, ya se que puede arreglar guardando antes de deshacer... o dejando las versiones viejas comentadas, o guardando copias temporales cada tanto, etc etc etc. Pero la verdad es que no lo hago, porque no es cómodo, porque cuando me doy cuenta ya es tarde, o por lo que sea. Así que acá va una solución alternativa en forma de nueva funcionalidad en ZinjaI (ya disponible en la última release estable).


A esto lo llamo "Historial de cambios" como para poner un nombre no tan largo que pueda usar en el menú (está en Edición). Al seleccionar esta opción, aparece en el margen inferior de la ventana una nueva barra de desplazamiento. Esta barra me permite moverme hacia atrás en el tiempo (deshacer) y hacia adelante (rehacer) sin riesgo de perder nada. El fuente se pone en modo solo-lectura, y en cualquier momento con el botón de cancelar (el de la X roja) volvemos a la situación en que estábamos antes de entrar a esta opción; o con el otro botón (el del tick verde) aceptamos los cambios y nos quedamos con la versión que estemos viendo en ese momento (y con la posibilidad de deshacer/rehacer otra vez antes de cambiar nada si fue por error).

No es una súper funcionalidad, ni muy avanzada ni nada de eso, pero a mí me resulta muy útil y no la he visto en otros editores (no quiere decir que nadie la tenga, tal vez es solo que no uso muchos otros editores). Todavía está verde, así que no se confíen 100% de esto (guarden antes de deshacer algo muy importante), pero espero que alguna vez les sirva; y como siempre, pueden opinar y dejar sugerencias al respecto en el foro o en los comentarios.

2 comentarios:

  1. Muy interesante, para darle una mayor utilidad, la barra de desplazamiento debería mostrar los puntos de cambio, y poder eliminar algunos de ellos, con el propósito por ej. de hacer una captura de vídeo para una presentación de clase

    ResponderEliminar
  2. Buenísimo, va a ser una funcionalidad muy útil. Saludos.

    ResponderEliminar