πΎ Archived View for gmi.osiux.com βΊ 2023-03-31-vim-autosave-backup.gmi captured on 2024-03-21 at 15:14:14. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2023-07-10)
-=-=-=-=-=-=-
[1]
Si bien tengo la autodisciplina de realizar *commits* atΓ³micos de cada cambio que realizo en un proyecto, en algunos momentos puedo pasar horas sin realizar ni un solo *commit*, con el riesgo de sobreescribir y/o perder algo importante.
Se puede configurar el autoguardado de cualquier archivo que edites con `vim` manteniendo una copia con un *timestamp* y de esta manera conservar varias versiones del mismo archivo cada vez que sufriΓ³ un cambio. Para esto basta definir las siguientes opciones en `~/.vimrc`
set backupdir=~/tmp,/tmp set directory=~/tmp,/tmp set backup set writebackup set backupcopy=yes au BufWritePre * let &bex = '@' . strftime("%F.%H:%M") autocmd TextChanged,TextChangedI <buffer> silent write
De esta manera ahora cada vez que modifique `archivo.md`, `vim` se ocuparΓ‘ de generar una copia en `~/tmp` agregando fecha, hora y minuto dejando la copia en `~/tmp/archivo.md@2023-03-31.11:20`
Ayer estuve generando la charla `ansible-tools.tape` y en ningΓΊn momento versionΓ©, y hoy al corregirla, perdΓ algunas lΓneas sin querer queriendo, no hay problema, obtengo un listado de las ΓΊltimas modificaciones usando:
ls -lht ~/tmp/ansible-tools.tape* | head -3 .rw-rw-r-- osiris osiris 3.0 KB Fri Mar 31 10:23:43 2023 /home/osiris/tmp/ansible-tools.tape@2023-03-31.10:20 .rw-rw-r-- osiris osiris 3.7 KB Fri Mar 31 10:20:24 2023 /home/osiris/tmp/ansible-tools.tape~ .rw-rw-r-- osiris osiris 6.6 KB Thu Mar 30 14:59:29 2023 /home/osiris/tmp/ansible-tools.tape@2023-03-30.14:59
Haciendo un `diff` rΓ‘pidamente veo quΓ© perdi
delta ~/tmp/ansible-tools.tape@2023-03-31.10:20 ansible-tools.tape ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ home/osiris/tmp/ansible-tools.tape@2023-03-31.10:20 βΆ ansible-tools.tape ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ansible-tools.tape:155: Type " grep -E '(name|version):' requirements.yml" β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β 155βSleep 5s β 155βSleep 5s β 156βEnter β 156βEnter β 157βSleep 8s β 157βSleep 8s β 158β β β β 159βType "# Working with AWX via JSONs" β β β 160βSleep 5s β β β 161βEnter β β β 162βType " cd ~/awx" β β β 163βSleep 5s β β β 164βEnter β β β 165β β β β 166βHide β β β 167βType " rm -f project/ansible_generic_v0.1.1.json" β β β 168βEnter β β β 169βShow β β
Basta copiar el ΓΊltimo *backup* y asi restaurar el archivo que estaba escribiendo para recuperar y no perder nada:
cp ~/tmp/ansible-tools.tape@2023-03-31.10:20 ansible-tools.tape
1: file:img/vim-autosave-backup.png
2: 2022-11-21-howto-quickly-write-git-commit-messages-using-vim.gmi
3: 2018-08-15-realizar-un-profile-en-vim-y-deshabilitar-foldexpr-markdown.gmi
4: 2011-09-30-ejecutar-shell-dentro-de-vim.gmi
5: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/74caed617403b09545eabfef8b9a11d38dccdace