¿Dónde guarda VIM (gvim/macvim) los archivos de intercambio para los buffers no guardados/sin nombre?

¿Dónde guarda VIM (gvim/macvim) los archivos de intercambio para los buffers no guardados/sin nombre?

¿Dónde guarda VIM (gvim/macvim) los archivos de intercambio para los buffers no guardados/sin nombre? (Si es que lo hace).

Fondo: Durante un seminario semi intenso, estaba tomando notas en un búfer de MacVim sin nombre/no guardado cuando la MacBook se quedó sin energía y se apagó de la nada (no entró en suspensión/hibernación como lo haría normalmente).

Pregunta: ¿Alguien sabe si existe alguna posibilidad de que el trabajo no guardado se haya guardado en un archivo de intercambio (.swp) o similar y pueda recuperarse?

Detalles del sistema: En particular, esto sucedió usando MacVim en Mac OS X 10.5.8 (pero también son de interés posibles sugerencias de recuperación para otras versiones). Todavía no he reiniciado MacVim en caso de que al hacerlo se inicie un proceso de limpieza.

Respuesta1

Inicie vim y pruebe:

:recover <filename>

Si el archivo nunca tuvo un nombre, entonces simplemente:

:recover

Esa es tu mejor apuesta. Para obtener más información sobre el intercambio de archivos y la recuperación, consulte:

:help usr_11

En cuanto a los archivos de intercambio, normalmente se guardan en el mismo directorio que el archivo que se está editando, pero con la extensión . Agregué el principio para ocultarlo y .swp al final, pero es posible moverlos a otra parte con algo como:

:set directory=~/vimswap

o similar.

Ver:

:help swap

Para todos los detalles.

Sin embargo, un archivo de intercambio vim no es lo mismo que el búfer editado, así que asegúrese de leer lo que se puede hacer para la recuperación.


EDITAR: comentarios respondiendo a la pregunta:

[…] Parece buscar en su directorio de trabajo actual, ~/tmp, /var/tmp y /tmp archivos de intercambio y en mi caso siempre tengo un directorio de trabajo actual configurado y ahí es donde se guardó.agregado el 05 de octubre, 2010 en el 01:42, el autor dsclementsen

Además, asegúrese de revisar la línea de comando vim -r arg. Esto imprimirá todos los archivos de intercambio encontrados y dónde se encuentran. Además tendrá mucha información adicional como fecha/modificación/nombre de usuario/etc...– Neg_EV el 5 de octubre, 2010 en el 03:49

Respuesta2

Trabajo en Windows 10 y :recoverno encontré un archivo de intercambio. vim -renumeró el archivo de intercambio de la última sesión de edición (que tampoco se guardó nunca) llamado _.swp. La recuperación fue posible con :recover _.

Respuesta3

La respuesta es: por todos lados. El truco está en encontrar el correcto. Algunos están en su directorio /tmp, pero muchos de ellos están en algún lugar debajo de su directorio de inicio.

Quizás haya formas más eficientes de hacer esto, pero lo siguiente funcionó para mí cuando perdí un archivo sin nombre (en MacBook):

en el directorio de inicio, busque archivos de respaldo (lleva unos segundos y probablemente se pueda hacer de manera más inteligente):

find ./ -name ".s*" > findVimBackups.txt

abrir documento:

vim findVimBackups.txt

elimine nombres de archivos que no sean para copias de seguridad de archivos sin nombre:

:g!/\/\.s..$/d
:g/svn/d

Ahora veo una lista de ubicaciones de archivos de copia de seguridad sin nombre. En cada uno de esos directorios ejecuto lo siguiente hasta que encuentro los archivos de hoy:

ls -ltra <directory>

Entro en el directorio correcto, abro vim y escribo: recuperar y selecciono la copia de seguridad correcta.

Respuesta4

Pude recuperar mi archivo en una caja de Win 10 de la siguiente manera:

Vaya al directorio donde abrió vim por última vez. Para mí, eso fue a través del atajo de vim en la barra de tareas de Win 10. Haga clic derecho en el icono de vim, haga clic derecho nuevamente en el atajo de vim y seleccione 'propiedades'. Aparecerá un cuadro de diálogo. El valor en el campo 'Comenzar en:' en ese cuadro de diálogo es donde efectivamente abrí vim por última vez. Para mí, ese valor fue %HOMEDRIVE%%HOMEPATH%. Vaya a una consola de comandos de DOS e invoque los comandos echo %HOMEDRIVE%para echo %HOMEPATH%determinar dónde está.

Examine las últimas fechas de modificación de todos los archivos _.s* en ese directorio. Busque el archivo con la última fecha de modificación que coincida con la última vez que abrió el archivo.

Abra la vibración. Escribe :recover _filename_dondeNombre del archivoes el archivo que encontró en la instrucción anterior.

información relacionada