Remarque: vous n’avez pas indiqué le système d’exploitation que vous utilisez. Ce qui suit fonctionne avec un shell Unix, mais si vous utilisez Windows, vous pouvez télécharger un Cygwin simple ou un autre shell.
Je faisais la même chose que toi, cours :e
pour rouvrir le même fichier pour pouvoir supprimer le fichier de récupération. Après un crash ou un redémarrage inattendu de l'ordinateur, je nettoie tous les fichiers de récupération Vim restants en exécutant vim -r
sur les fichiers d'échange et en laissant la récupération se poursuivre.
Quand les fichiers ont ne pas modifié
Si les fichiers n’ont pas changé, je souhaite supprimer le fichier de récupération immédiatement. Ce serait bien que Vim puisse le faire automatiquement, mais malheureusement, ce n’est pas le cas.
Quand les fichiers ont changé
Si les fichiers ont changé, je lance le DiffOrig
commande pour comparer les différences entre les versions d'origine et récupérées. Si je suis satisfait des modifications apportées au fichier de récupération, je quitte en enregistrant les fichiers avec le :x
commander. Sinon, je rejette les modifications récupérées en quittant avec :q!
. Si le fichier de récupération n’est pas associé à un fichier enregistré, par exemple, .swp
, J'utilise habituellement le :w filename
pour enregistrer le tampon récupéré dans un fichier avec un nom de fichier.
Assistant DiffOrig
J'ai ajouté le DiffOrig commande à mon .vimrc
afin qu’il soit toujours disponible.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Script shell
J'exécute le script suivant dans mon shell pour rechercher chaque fichier d'échange dans l'arborescence de répertoires actuelle. Chaque fichier d'échange est ensuite utilisé pour ouvrir Vim dans "mode de récupération" et est ensuite supprimé après la fermeture de Vim.
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
le rm -i
Cette option nécessite une confirmation ( y
) pour supprimer le fichier. Si vous êtes plus confiant et souhaitez accélérer le processus, vous pouvez l'omettre.
:e #
Le truc est, bien que pas idéal, mais toujours plus utile que la réponse actuelle ci-dessous. :-)