πŸ’Ύ Archived View for gmi.osiux.com β€Ί 2023-03-31-vim-autosave-backup.gmi captured on 2023-12-28 at 15:29:28. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-07-10)

-=-=-=-=-=-=-

vim autosave backup

[IMG]

[1]

amo el orden pero soy un caos!

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.

`autosave` al rescate

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`

recuperando cambios perdidos

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

Tal vez te interese leer

ChangeLog

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