web-dev-qa-db-fra.com

Comment puis-je récupérer le fichier d'origine à partir d'un fichier .swp?

J'ai essayé d'ouvrir le fichier .swp en utilisant vi et cat mais il affiche des fichiers indésirables.

54
zarna
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- les fichiers sont laissés si une session avec un fichier non enregistré est tuée/plante/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 -rlit ces fichiers temporaires et recrée le contenu. Une fois que vous l'avez récupéré, enregistrez-le comme d'habitude, par exemple :w newfilename.

87
Daniel Andersson

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.

16
Vegar Westerlund

1 Ouvrez le fichier d'échange .file.swp dans vim

2 :recover va récupérer votre fichier

7
Sathyam

Ouvrez le fichier d'origine à l'aide de vim et choisissez l'option de récupération.

7

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 être récupéré à partir d'un fichier .swp. Voici ce qui a fait:

J'ai ouvert un fichier de 975 lignes, je l'ai édité à la ligne 949 (création d'un fichier .swp), j'ai tué le processus, puis supprimé l'original. $ vim Original_File m'a demandé si je voulais récupérer du fichier .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 y at-il un paramètre permettant de contrôler le nombre de lignes qu'un fichier .swp doit contenir?

6
tuk0z