75 votes

Où VIM (gvim/macvim) garde-t-il les fichiers d'échange pour les tampons non sauvegardés/non nommés ?

Où VIM (gvim/macvim) garde-t-il les fichiers d'échange pour les tampons non sauvegardés/non nommés ? (si tant est qu'il le fasse).

Le contexte : Pendant un séminaire semi-intensif, je prenais des notes dans un tampon MacVim non nommé/non sauvegardé lorsque le MacBook a manqué de jus et s'est éteint de nulle part (il n'a pas dormi/hiberné comme il le fait habituellement).

Pregunta: Quelqu'un sait-il s'il y a une chance que le travail non sauvegardé ait été enregistré dans un fichier swap (.swp) ou autre, qui pourrait être récupéré ?

Détails du système : En particulier, cela s'est produit en utilisant MacVim sur un Mac OS X 10.5.8 (mais d'éventuels conseils de récupération pour d'autres versions sont également intéressants). Je n'ai pas encore redémarré MacVim, au cas où cela déclencherait un processus de nettoyage.

83voto

Brian Frost Points 6544

Lancez vim et essayez :

:recover <filename>

Si le fichier n'a jamais eu de nom, alors simplement :

:recover

C'est votre meilleure chance. Pour en savoir plus sur les fichiers d'échange et la récupération, voir :

:help usr_11

À propos des fichiers d'échange, ils sont généralement sauvegardés dans le même répertoire que le fichier en cours d'édition, mais avec un . ajouté au début pour le rendre caché et un .swp à la fin, mais il est possible de les déplacer ailleurs par quelque chose comme :

:set directory=~/vimswap

ou similaire.

Voir :

:help swap

Pour tous les détails.

Un fichier d'échange vim n'est pas le même que le tampon édité, cependant, alors assurez-vous de lire ce qui peut être fait pour la récupération.

EDITAR : commentaires répondant à la question :

[ ] Il semble regarder dans votre répertoire de travail actuel, ~/tmp, /var/tmp et /tmp pour les fichiers d'échange et dans mon cas, j'ai toujours un répertoire de travail actuel et c'est là qu'il a été enregistré. - dsclementsen 5 Oct '10 à 1:42

N'oubliez pas non plus de consulter l'argument de ligne de commande vim -r. Cela affichera tous les fichiers d'échange trouvés et où ils se trouvent. En plus, il y aura beaucoup d'informations supplémentaires comme la date/modifié/nom d'utilisateur/etc... - Neg_EV 5 Oct '10 à 13:49

5voto

rolacher Points 51

Je travaille sur Windows 10 et :recover n'a pas trouvé de fichier d'échange. vim -r a listé le fichier swap de la dernière session d'édition (également jamais sauvegardé) nommé _.swp. La récupération était possible avec :recover _ .

1voto

TimHelck Points 11

La réponse est : partout. L'astuce consiste à trouver le bon. Certains se trouvent dans votre répertoire /tmp, mais beaucoup d'entre eux sont quelque part sous votre répertoire personnel.

Il existe peut-être des moyens plus efficaces de le faire, mais ce qui suit a fonctionné pour moi lorsque j'ai perdu un fichier sans nom (sur MacBook) :

dans le répertoire personnel, rechercher les fichiers de sauvegarde (cela prend quelques secondes, et peut probablement être rendu plus intelligent) :

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

ouvrir le dossier :

vim findVimBackups.txt

supprimer les noms de fichiers qui ne le sont pas pour les sauvegardes de fichiers sans nom :

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

Maintenant, je vois une liste des emplacements des fichiers de sauvegarde sans nom. Dans chacun de ces répertoires, je lance la commande suivante jusqu'à ce que je trouve le(s) fichier(s) d'aujourd'hui :

ls -ltra <directory>

Je me connecte au bon répertoire, ouvre vim et tape :recover et je sélectionne la bonne sauvegarde.

0voto

JonnyRaa Points 203

Il semble qu'ils se retrouveront dans votre répertoire de travail. :pwd Il s'agit de l'endroit où vous avez ouvert vim ou bien vous avez pu le définir en utilisant :cd ou similaire.

Les fichiers d'échange pour les tampons sans nom semblent être simplement déposés là sans nom de fichier, ce qui fait que vous vous retrouvez avec des .swp .swn .swo, etc. J'ai découvert cela non pas en essayant de récupérer quelque chose mais lorsque mon fichier hg ignore ne couvrait pas assez de suffixes différents !

J'ai supposé que le fait d'avoir beaucoup de tampons sans nom avec des changements pouvait être la cause et que la suppression de ces tampons a fait disparaître les fichiers mystères.

0voto

JohnC Points 101

J'ai pu récupérer mon fichier sur une boîte win 10 comme suit :

Allez dans le répertoire où vous avez ouvert vim pour la dernière fois. Pour moi, c'était via le raccourci vim dans la barre des tâches de win 10. Cliquez avec le bouton droit de la souris sur l'icône de vim, cliquez à nouveau avec le bouton droit de la souris sur le raccourci vim et sélectionnez "propriétés". Une boîte de dialogue s'affiche. La valeur du champ "Start in :" de cette boîte de dialogue correspond à l'endroit où j'ai ouvert vim pour la dernière fois. Pour moi, cette valeur était %HOMEDRIVE%%HOMEPATH% . Accédez à une console de commande dos et invoquez les commandes suivantes echo %HOMEDRIVE% y echo %HOMEPATH% pour déterminer où il se trouve.

Examinez les dates de dernière modification de tous les fichiers _.s* de ce répertoire. Trouvez le fichier dont la date de dernière modification correspond à la dernière fois que vous avez ouvert le fichier.

Ouvrez vim. Tapez :recover _filename_nom de fichier est le fichier que vous avez trouvé dans l'instruction précédente.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X