vim autosave backup
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
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
2023-06-12 22:45
agregar vim autosave backup