web-dev-qa-db-fra.com

Comment empêcher vim de créer (et de laisser) des fichiers temporaires?

Pourquoi vim crée-t-il <filename>~ des dossiers? Y at-il un moyen de désactiver cela?

Si c'est pour la sauvegarde (ou autre chose), j'utilise git pour ça.

En outre, ces .<filename.with.path.hints>.swp fichiers aussi.

Comment puis-je dire à vim de ne pas les créer, ou du moins de les nettoyer eux-mêmes?

[~ # ~] éditer [~ # ~]

oups, dupliquer:

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

J'ai adopté réponse de rogeriopvl à partir de là.

copie exacte:

set nobackup       "no backup files
set nowritebackup  "only in case you don't want a backup file while editing
set noswapfile     "no swap files
154
hasen

Je recommande fortement de continuer à travailler avec les fichiers d'échange (au cas où Vim planterait).

Vous pouvez définir le répertoire dans lequel les fichiers d'échange sont stockés pour ne pas encombrer vos répertoires normaux:

set swapfile
set dir=~/tmp

Voir également

:help swap-file
68
user55400

Mettez ceci dans votre fichier de configuration .vimrc.

set nobackup
54
Chad Birch

; Pour que les utilisateurs Windows puissent revenir dans le répertoire temporaire

set backup
set backupdir=C:\WINDOWS\Temp
set backupskip=C:\WINDOWS\Temp\*
set directory=C:\WINDOWS\Temp
set writebackup
30
Sooraj

J'ai créé un plugin appelé "noswapsuck" qui n'active le fichier d'échange que lorsque le tampon contient des modifications non enregistrées. Une fois les modifications enregistrées, le fichier d'échange est effacé. Par conséquent, les fichiers d'échange qui contiennent le même contenu que le fichier sur le disque seront supprimés.

Obtenez-le ici: noswapsuck.vim

Cela a bien fonctionné pour moi, mais je ne l'avais jamais publiée auparavant, alors je serais heureux de recevoir vos commentaires.

Avantages:

  • Les seuls fichiers d'échange qui restent sur votre disque seront des fichiers d'échange importants qui diffèrent réellement du fichier!

Désavantages:

  • Si la mémoire tampon contient un fichier d'échange, il ne sera pas détecté lors de la première ouverture du fichier. Il ne sera détecté que lorsque swapfile sera activé, c'est-à-dire lorsque vous commencerez à modifier le tampon. C'est tardivement ennuyeux et vous interrompra. (Résolu: nous vérifions maintenant la présence d'un fichier d'échange pré-existant lorsqu'un tampon est ouvert, en réactivant temporairement l'option swapfile.)

  • Si vous travaillez dans un environnement dans lequel vous souhaitez minimiser les écritures sur disque (par exemple, faible consommation d'énergie, fichiers montés sur un réseau ou édition d'un fichier volumineux), il n'est pas idéal de continuer à supprimer et à recréer le fichier d'échange tous les enregistrer et éditer. Dans de telles situations, vous pouvez faire:

    :let g:NoSwapSuck_CloseSwapfileOnWrite = 0
    

    qui conservera le fichier d'échange après une écriture, mais le supprimera quand-même lorsque la mémoire tampon perd son focus.

Au fait, j'ai un autre petit plugin :DiffAgainstFileOnDisk qui peut être très utile après avoir frappé (r)ecover, pour vérifier si le tampon que vous avez récupéré est plus récent ou plus ancien que le fichier existant, ou identique.

10
joeytwiddle

Sous Windows, ajoutez les lignes suivantes à _vimrc

" store backup, undo, and swap files in temp directory
set directory=$HOME/temp//
set backupdir=$HOME/temp//
set undodir=$HOME/temp//
7
Vlad Bezden

Cette réponse concerne l'utilisation de gVim sous Windows 10. Je ne peux pas garantir les mêmes résultats pour d'autres systèmes d'exploitation.

Ajouter:

set nobackup
set noswapfile
set noundofile

À votre fichier _vimrc.

Remarque: Il s’agit de la réponse directe à la question (pour Windows 10) et probablement pas la chose la plus sûre à faire (lisez les autres réponses), mais c’est la solution la plus rapide dans mon cas.

5
wlwl2