web-dev-qa-db-fra.com

Pourquoi Vim enregistre-t-il les fichiers avec une extension ~?

J'ai constaté que lors de l'utilisation de Vim sous Windows, Vim enregistre le fichier, un fichier .ext.swp qui est supprimé à la fermeture de la fenêtre Vim et un fichier .ext~

Je suppose que le fichier .ext.swp est une sauvegarde de session au cas où Vim se bloquerait. Mais à quoi sert le fichier .ext~? Est-ce un fichier de sauvegarde permanent? C'est agaçant, car j'aimerais copier tous les fichiers sur lesquels je travaille sur mon hôte, sans ces doublons. Comment puis-je désactiver ceci ou , si c'est pour une bonne raison, cacher les fichiers ?

162
Ross

Le fichier *.ext~ est un fichier de sauvegarde contenant le fichier tel qu'il était avant sa modification.

Le fichier *.ext.swp est le fichier d'échange, qui sert de fichier de verrouillage et contient l'historique d'annulation/restauration, ainsi que toute autre information interne dont Vim a besoin. En cas de plantage, vous pouvez rouvrir votre fichier et Vim restaurera son état précédent à partir du fichier d'échange (ce que je trouve utile, donc je ne l'éteins pas).

Pour désactiver la création automatique de fichiers de sauvegarde, utilisez (dans votre vimrc):

set nobackup
set nowritebackup

nowritebackup modifie le comportement par défaut "save" de Vim, qui est:

  1. écrire un tampon dans un nouveau fichier
  2. supprimer le fichier d'origine
  3. renommer le nouveau fichier

et oblige Vim à écrire le tampon dans le fichier d'origine (ce qui risquerait de le détruire en cas d'erreur d'E/S). Mais vous empêchez de "sauter des fichiers" sur le bureau Windows avec celui-ci, ce qui est la raison principale pour laquelle je dois avoir nowritebackup en place.

210
Tomalak

Je pense que la meilleure solution consiste à placer ces lignes dans votre fichier vimrc

set backupdir=~/vimtmp,.
set directory=~/vimtmp,.

Pour que cela fonctionne, vous devez créer un répertoire dans votre répertoire personnel appelé vimtmp.

De cette façon, vous bénéficiez des avantages des deux mondes, vous n’aurez pas à voir les fichiers, mais si un problème survient, vous pouvez aller chercher votre fichier de sauvegarde auprès de vimtmp. N'oubliez pas de nettoyer le répertoire de temps en temps.

205
user183135

Pour désactiver ces fichiers, ajoutez simplement ces lignes à .vimrc (fichier de configuration vim sur système d'exploitation basé sur Unix):

set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files
23
rogeriopvl
:set nobackup 

désactive les sauvegardes. Vous pouvez également définir un backupdir si vous voulez toujours ces fichiers de sauvegarde mais dans un dossier central. De cette façon, votre répertoire de travail n'est pas encombré de ~ fichiers.

Vous trouverez plus d’informations sur les sauvegardes sous: il backup

12
f3lix

Et vous pouvez également définir une extension de sauvegarde différente et l'emplacement de sauvegarde (je préfère ~/.vimbackups sur linux). J'avais l'habitude d'utiliser des sauvegardes "versionnées", via:

au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'

Ceci définit une extension de sauvegarde dynamique (ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup).

11
Zsolt Botykai

Mettez cette ligne dans votre vimrc:

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile

Sous Windows, ce serait le fichier C:\Program Files (x86)\vim\_vimrc pour la configuration de vim à l’échelle du système pour tous les utilisateurs.

Définir la dernière variable noundofile est important dans Windows pour empêcher la création de fichiers *~ tilda après la modification.


Je souhaite que Vim ait cette ligne incluse par défaut. Personne n'aime les répertoires laids.

Laissez l’utilisateur choisir si et comment il souhaite activer d’abord les fonctionnalités avancées de sauvegarde/annulation de fichiers.

C'est la partie la plus agaçante de Vim.

La prochaine étape consiste à configurer set noeb vb t_vb= pour désactiver le bip: P

6
w17t

Vous avez raison de dire que le fichier .swp est utilisé par vim pour le verrouillage et en tant que fichier de récupération.

Essayez de mettre set nobackup dans votre vimrc si vous ne voulez pas ces fichiers. Reportez-vous à la documentation de Vim pour connaître les différentes options liées à la sauvegarde si vous souhaitez disposer de tout le contenu ou si vous souhaitez plutôt utiliser des fichiers .bak ...

6
dwc

La seule option qui a fonctionné pour moi a été de mettre cette ligne dans mon fichier ~/.vimrc

set noundofile

Les autres options faisant référence aux fichiers de sauvegarde n’empêchent pas la création des fichiers temporaires se terminant par ~ (tilde)

4
Logan

J'ai dû ajouter set noundofile à ~ _gvimrc 

Le répertoire "~" peut être identifié en le modifiant avec la commande cd ~

0
Josh