2009-04-13 6 views
141

Pourquoi vim crée-t-il des fichiers <filename>~? Y a-t-il un moyen de désactiver cela?Comment empêcher vim de créer (et de quitter) des fichiers temporaires?

Si c'est pour la sauvegarde (ou quelque chose), j'utilise git pour cela. En outre, ces .<filename.with.path.hints>.swp fichiers également.

Comment puis-je dire à vim de ne pas les créer, ou au moins de les nettoyer après lui-même?

EDIT

oups, double:

Why does Vim save files with a ~ extension?

I adoptée rogeriopvl's answer à partir de là.

copie in extenso:

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

Git ne vous aidera jamais à récupérer du travail après un plantage du système. Git peut ignorer vos fichiers * .swp aussi. = D – vmassuchetto

+2

Copie possible de [Pourquoi Vim enregistre-t-il des fichiers avec ~ une extension?] (Http://stackoverflow.com/questions/607435/why-does-vim-save-files-with-a-extension) –

Répondre

50

Mettez dans votre fichier de configuration vimrc.

set nobackup 
+5

Nous ' Je l'ai fait sur Windows 8.1 avec Vim. Les fichiers d'échange sont toujours présents. –

+1

Shaun, vous devrez peut-être ajouter "set noswapfile" à votre fichier .vimrc ainsi que d'empêcher la création de nouveaux fichiers d'échange, comme mentionné dans la modification de la question d'origine. –

+0

Qu'en est-il du ':' assis en tant que préfixe avant le mot-clé 'set'? Est-ce nécessaire? Il ne ressemble pas à un commentaire .. – Stephane

63

Je vous recommande vivement de continuer à travailler avec les fichiers d'échange (en cas de panne de Vim).

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

set swapfile 
set dir=~/tmp 

Voir aussi

:help swap-file 
+3

bien, je n'ai jamais eu besoin de ceux avec notepad ++, sauf si vous disons que vim va planter trop souvent! – hasen

+5

non, je n'impliquais pas que vim plante trop souvent (même si je l'ai vu s'écraser). Mais pour mon environnement de travail, la connexion réseau à un hôte sur lequel je travaille est assez instable, ce qui entraîne une modification interrompue. Les fichiers d'échange aident ici. – user55400

+6

@ user55400 entendu parler de GNU/Screen? (ou tmux, ou cette alternative japonaise) –

25

; Pour les utilisateurs de Windows pour revenir au répertoire temporaire

set backup 
set backupdir=C:\WINDOWS\Temp 
set backupskip=C:\WINDOWS\Temp\* 
set directory=C:\WINDOWS\Temp 
set writebackup 
+3

Je devais ajouter set undodir = C: \ WINDOWS \ Temp –

9

J'ai fait un plugin appelé « noswapsuck » qui permet seulement le fichier d'échange lorsque la mémoire 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 contenant le même contenu que le fichier sur le disque seront supprimés.

https://github.com/joeytwiddle/rc_files/blob/master/.vim/plugin/noswapsuck.vim

Il travaille bien pour moi, mais je n'ai jamais médiatisé avant, donc j'apprécierait des commentaires.

Avantages:

  • Les seuls swapfiles qui restent sur votre disque sera important swapfiles qui diffèrent en fait à partir du fichier!

Inconvénients:

  • Si le tampon a un fichier d'échange, il ne sera pas détecté lorsque le fichier est d'abord ouvert. Il ne sera détecté que lorsque swapfile est activé, ce qui signifie que vous commencez à modifier le tampon. C'est ennuyeux en retard, et vous interrompre. Un peu de magie supplémentaire lorsque le fichier est ouvert (par exemple, activer, cocher, puis désactiver swapfile) pourrait potentiellement résoudre ce problème.Si vous travaillez dans un environnement où vous voulez minimiser les écritures de disque (par exemple, faible consommation d'énergie ou fichiers montés sur un réseau), ce n'est pas une bonne solution car il détruit et recrée le fichier d'échange sur tous les ordinateurs. sauvegarder/éditer. (*)
  • Pour la même raison, ce n'est pas un bon plugin à utiliser pour éditer des fichiers volumineux.

(*) En fait défaut courant du plugin éviter ce problème en gardant swapfile activée après une écriture, et seulement désactiver plus tard lorsque vous Unfocus la fenêtre ou d'un tampon. L'inconvénient est que les fichiers d'échange inutiles existent parfois sur le disque après un crash. La désactivation de cette option serait donc recommandée sur les machines puissantes. Je peux changer cette valeur par défaut à l'avenir!

+0

Cela devrait être le comportement par défaut de vim, merci – codebeard

4

Sous Windows ajoutez ce qui suit les lignes à _vimrc

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

Cette réponse s'applique à l'utilisation gVim sur Windows 10. Je ne peux pas garantir les mêmes résultats pour les autres systèmes d'exploitation.

Ajouter:

set nobackup 
set noswapfile 
set noundofile 

à votre fichier _vimrc.

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

Questions connexes