Parfois, Vim se bloque et me laisse un fichier d'échange. C'est génial. Ensuite, j'ouvre le fichier que je modifiais et Vim me demande si je veux récupérer. Oui, merci. Quand c'est fini, Vim me dit:
You may want to delete the .swp file now.
Pourquoi, oui, je le fais. Comment je fais ça? Je pensais qu'il commencerait simplement à utiliser l'ancien fichier d'échange comme fichier d'échange à nouveau et à le nettoyer lorsque j'arrêterai de fumer, mais ce n'est pas vrai. Il en crée un nouveau, le nettoie et lorsque je rouvre le fichier, il me demande à nouveau de récupérer le premier.
Sûrement je manque quelque chose.
Réponses:
Une manière un peu plus simple:
Depuis l'émulateur de terminal:
Ensuite, choisissez Récupérer . Si vous souhaitez supprimer le swap, vous écrivez (enregistrez), puis procédez comme suit depuis vim:
... et choisissez supprimer cette fois.
Je viens de découvrir ça, et je pense que je vais le faire à partir de maintenant. Ensuite, je ne remplacerai pas accidentellement un fichier de travail non plus, si la récupération s'est avérée corrompue (bien que je ne l'aie jamais essayé auparavant).
Il existe également des astuces pertinentes sur cette question sur Stack Overflow (où j'ai trouvé cette astuce).
la source
delete
option, il n'y a que: [O] pen (E) dit (R) ecover (Q) uit (A) bort, que dois-je faire?(D)elete
option, voir:help swap-exists
; citer C'est-à-On Unix this choice is only offered when the process that created the swap file does not appear to be running.
dire que vous avez peut-être un autre processus en cours d'exécution qui masque cette option. Cela pourrait aussi expliquer pourquoi vous avez unswp
fichier en premier lieu!Pour nettoyer TOUS les fichiers vim swap d'un répertoire:
Si vous êtes certain de ne pas avoir besoin de fichiers d'échange vim dans une arborescence de répertoires et que vous souhaitez vous en débarrasser, vous pouvez utiliser la commande suivante dans le répertoire lorsque vim n'est pas en cours d'exécution (même dans une autre fenêtre ou même avec un autre nom de connexion). session):
Un peu d' inspiration et de pensées me sont venues de suppression des fichiers de .swp indésirable sur les groupes Google. Ceci supprimera tous les fichiers dont le nom se termine avec
.swk
,.swl
,.swm
,.swn
,.swo
ou.swp
dans l'arborescence du répertoire courant.Cela peut ne pas être ce que vous voulez, pour plusieurs raisons:
Comme indiqué, il supprimera tous les fichiers dont le nom se termine avec
L'auteur original de ce post dit:.swk
,.swl
,.swm
,.swn
,.swo
ou.swp
, et pas seulement.swp
. Gary Johnson a déclaré :D'autre part, il pourrait être moins performant. le rouble suggère
qui correspond à toutes les extensions de trois lettres (minuscules) allant de
.saa
à.swp
. Il ajoute: «Attention, bien que cette solution soit plus complète, elle supprimera tous les fichiers image .svg et les fichiers flash .swf adobe. Vous pouvez modifier l'expression régulière si vous travaillez avec ces fichiers. » Il correspond également.sav
,.snd
(données sonores),.sql
,.src
,.srt
(SubRip format vidéo de sous - titres), et bien d' autres extensions communes.C'est peut-être exagéré. Comme indiqué, il supprimera tous les fichiers dont le nom se termine avec
.swk
,.swl
,.swm
,.swn
,.swo
ou.swp
. Mais, apparemment, les fichiers d'échange vim sont généralement des fichiers «pointés». Si vous modifiezhello.cpp
, le fichier d'échange peut être.hello.cpp.swp
. Comme indiqué (mais non expliqué) dans la réponse de rouble , il est préférable de ne supprimer que les fichiers dont le nom commence par un point. par exemple avecla source
Type
ls -a
qui répertorie TOUS les fichiers du répertoiretapez
rm .whatever.your.swp
et appuyez surenterC'est si simple.
Tout fichier qui montre avec
.
devant est un fichier caché et n’est normalement pas vu.Rappelez-vous que les changements sont immédiats et permanents, soyez donc prudent.
la source
file.swp
oufile.swo
. Ensuite, je dois retourner là où j'étais. Frapper:e
est une solution beaucoup plus simple.ls: cannot access +A: No such file or directory
Btw. certains plugins le font automatiquement pour vous: autoswap.vim
d'après la description:
la source
Non, autant que je sache, rien ne manque.
Vim
continue de conserver le fichier d'échange comme sauvegarde jusqu'à ce que vous le supprimiez explicitement.Enregistrez, quittez et rouvrez le même fichier. Vous serez invité (à nouveau) avec
Maintenant, appuyez sur
d
:)la source
Vim, comme la plupart des commandes Unix, est simple et explicite, plutôt que supposé et implicite.
Vous récupérez avec (r). Si vous n'aimez pas la récupération ou si la récupération est corrompue, vous pouvez la rejeter. Si vous aimez, vous pouvez enregistrer le fichier. Le fichier de récupération n'est pas supprimé pour vous car ce n'est pas explicite et ne sera pas correct pour 100% des situations.
Donc, vous (r) ecover, (w) rite et (q) uit, puis éditez à nouveau et choisissez (d) elete ou "rm .myfile.js.swp" et éditez à nouveau. Du point de vue de Vim, cela est rapide et constitue toujours un comportement correct à 100%.
la source
Ces fichiers étaient gênants pour moi aussi, mais j’ai défini l’option dans .vimrc -
set noswapfile
pour empêcher vim de le créer et, au lieu de cela, pour conserver les fichiers en mémoire.la source
Voici une regex plus complète pour nettoyer tous les fichiers d'échange vim basés sur le propre fichier gitignore de Github pour Vim
Attention, bien qu’il s’agisse d’une solution plus complète, elle supprimera tous les fichiers image .svg et les fichiers flash .swf adobe. Vous voudrez peut-être modifier l'expression régulière si vous travaillez avec ces fichiers.
la source
Voici un extrait à ajouter
.vimrc
. Il supprime tous les fichiers d'échange associés au tampon de fichier actuel et réinitialise l'extension d'échange.Une fois la situation difficile atteinte, l’exécution
:DeleteFileSwaps
est excellente. C’est formidable si vous combinez avec:windo
ou des:tabdo
commandes.Détails supplémentaires : Un fichier peut avoir plus d'un fichier d'échange. La raison parce que le fichier d'échange, avec l'extension de
.swp
, existe toujours etvim
continuera à en créer de nouveaux à cause de cela. Pour savoir s'il.swp
existe::sw
pour obtenir le fichier d'échange actuel..swp
.L'extrait ci-dessus suit le même processus, mais supprime tous les fichiers d'échange.
J'espère que cela t'aides.
la source
Du manuel
:h swap
:la source
.swp
fichier, la:sw
commande vous donnera probablement le nom du.swo
fichier - ce qui n'est pas ce que vous souhaitez supprimer.si on vous le demande, appuyez sur Dpour supprimer le fichier d'échange du fichier actuel.
si vous ne l'êtes pas, vous devez le faire manuellement.
Une autre façon de faire est de:
pour localiser / rechercher un fichier:
puis supprimez ce fichier:
la source
Vous pouvez utiliser,
Exemple:
la source
<ext>
est redondant ici car un nom de fichier sous Linux ne comporte aucune extension ou plus.