Réponses:
vim -r .swp
Cela passe en mode de récupération et vous donne plus d'informations. Je pense que c'est ce que tu veux.
.swX
-files sont laissés derrière si une session avec un fichier non enregistré est tué / se bloque / quelque chose de mauvais se produit. Ils sont également présents lorsqu'une mémoire tampon non enregistrée est ouverte dans une session Vim. vim -r
lit ces fichiers temporaires et recrée le contenu. Après l'avoir récupéré, sauvegardez-le comme d'habitude, par exemple :w newfilename
.
Vous n'avez pas besoin du fichier d'origine pour récupérer le .swp. Ouvrez simplement le fichier comme s'il existait. vim recherchera le fichier avec l’extension .swp et lui proposera de le récupérer.
par exemple:
$ 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:
Appuyez simplement sur R pour le récupérer et: wq le fichier
Edit: Notez que le fichier .swp ne contient que les modifications apportées au fichier (voir le commentaire). Cela signifie que vous devrez récupérer une copie récente du fichier depuis la sauvegarde, puis utiliser vim pour récupérer les dernières modifications. Si vous ne possédez pas de copie de sauvegarde du fichier, vous n’avez vraiment pas de chance.
The original file is no longer needed for recovery.
:preserve
et :set cpoptions=...&
laisse un fichier .swp et .swo dans le répertoire et propose de récupérer l'un ou l'autre. En utilisant, vim -r <file>
vous pouvez choisir entre .swp et .swo. Les éditions ultérieures génèrent .swn, .swm, etc., qui semblent correspondre à la somme partielle des échanges jusqu’à ce point. Vous pouvez revenir à la version de votre choix et l’éditer (~ = fork) ou enregistrer (~ = stash). Finalement, vous pouvez tarer les fichiers d'échange, démoniser leurs sauvegardes, etc. Je peux me tromper sur les détails en ce qui concerne les fichiers plus volumineux - je ne suis pas sûr de savoir comment cela affecte les fichiers d'échange supplémentaires non plus - voir ci-dessous.
Ouvrez le fichier d'origine à l'aide de vim et choisissez l'option de récupération.
Après avoir lu les commentaires de Vegar Westerlund et Heptite, je voulais savoir à quel moment vim avait besoin du fichier d'origine (ou d'une sauvegarde) pour récupérer à partir d'un fichier .swp. Voici ce qui a fait:
J'ai ouvert un fichier 975 lignes, il édité en ligne 949 (création d' un .swp
fichier) et tué le processus, puis supprimé l'original. $ vim Original_File
demandé si je voulais récupérer du .swp »> oui; seules les 68 premières lignes et les 34 dernières lignes (8 lignes au-dessus de ma modification) ont été récupérées.
J'ai ensuite répété le test avec des fichiers plus petits: de 20 à 200 lignes, le fichier .swp contenait 100% du contenu d' origine . Mais à 300 lignes, seules les 68 premières et les 18 dernières lignes (les 2 premières lignes au-dessus de mon édition) ont été incluses dans le .swp.
En conclusion, il est bon de savoir que vim enregistre toujours "l'en-tête" et le "fond" du fichier dans les fichiers .swp. Peut-être existe-t-il un paramètre permettant de contrôler le nombre de lignes qu'un fichier .swp doit contenir?