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 ?
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
Où nowritebackup
modifie le comportement par défaut "save" de Vim, qui est:
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.
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.
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
: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 .
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
).
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
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 ...
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)
J'ai dû ajouter set noundofile
à ~ _gvimrc
Le répertoire "~" peut être identifié en le modifiant avec la commande cd ~