Respuestas:
vim -r .swp
Esto entra en modo de recuperación y le brinda más información. Creo que esto es lo que quieres.
.swX
-los archivos se quedan atrás si una sesión con un archivo no guardado se mata / se bloquea / sucede algo malo. También están presentes durante el tiempo que un búfer no guardado está abierto en una sesión de Vim. vim -r
lee estos archivos temporales y recrea el contenido. Después de recuperarlo, solo guárdelo como de costumbre, por ejemplo :w newfilename
.
No necesita tener el archivo original para recuperar el .swp. Simplemente abra el archivo como si existiera. vim buscará el archivo con la extensión .swp y ofrecerá recuperarlo.
p.ej:
$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Simplemente presione R para recuperarlo y: wq el archivo
Editar: Tenga en cuenta que el archivo .swp solo contiene los cambios realizados en el archivo (ver comentario). Esto significa que deberá recuperar una copia reciente del archivo de la copia de seguridad y luego usar vim para recuperar los últimos cambios. Si no tiene una copia de seguridad del archivo, realmente no tiene suerte.
The original file is no longer needed for recovery.
:preserve
y :set cpoptions=...&
deja un archivo .swp y .swo en el directorio y ofrece recuperarse de cualquiera de ellos. Utilizando vim -r <file>
puedes elegir entre .swp y .swo. Las ediciones posteriores generan .swn, .swm, etc., que parecen ser la suma parcial de swaps hasta ese punto. Puede volver a la versión de su gusto y editar (~ = fork) o guardar (~ = stash). Eventualmente, puede bloquear los archivos de intercambio, demonizar sus copias de seguridad, etc. Podría estar equivocado acerca de los detalles cuando se trata de archivos más grandes; tampoco estoy seguro de cómo eso afecta a los archivos de intercambio adicionales, vea a continuación.
Abra el archivo original con vim y elija la opción de recuperación.
Después de leer los comentarios de Vegar Westerlund y Heptite, quería saber en qué punto vim necesita el archivo original (o una copia de seguridad) para recuperarse de un archivo .swp. Esto es lo que hizo:
Abrí un archivo de 975 líneas, lo edité en la línea 949 (creando un .swp
archivo) y eliminé el proceso, luego eliminé el original. $ vim Original_File
me preguntó si quería recuperarme del .swp »> yes; solo se recuperaron las primeras 68 líneas y las últimas 34 líneas (comenzando 8 líneas sobre mi edición).
Luego repetí la prueba con archivos más pequeños: desde 20 hasta 200 líneas, el archivo .swp contenía el 100% del contenido original . Pero en 300 líneas, solo las primeras 68 y las 18 últimas líneas (comenzando 2 líneas por encima de mi edición) se incluyeron en el .swp.
Como conclusión, es bueno saber que vim siempre guarda el "encabezado" y la "parte inferior" del archivo en los archivos .swp. ¿Quizás haya una configuración para controlar la cantidad de líneas que debe contener un .swp?