web-dev-qa-db-fra.com

Désactiver la création de fichiers d'échange dans vim

Est-il possible de désactiver .swp création de fichiers dans vim? ou du moins les créer tous au même endroit afin que je puisse les trouver et les supprimer facilement.

Je les trouve particulièrement ennuyeux lorsque je copie le répertoire parent tout en le modifiant. Bien sûr, je sais que je peux utiliser find -exec pour les rechercher et les supprimer. Mais je veux une solution plus pratique.

207
Nadia Alramli

Pour désactiver les fichiers d'échange à partir de vim, tapez

:set noswapfile

Pour désactiver définitivement les fichiers d'échange, ajoutez ce qui suit à votre ~/.vimrc fichier

set noswapfile

Pour plus de détails, voir le docs Vim sur fichier d'échange

243
dwc

Définissez les variables suivantes dans .vimrc ou/etc/vimrc pour que vim mette les fichiers d'échange, de sauvegarde et d'annulation dans un emplacement spécial au lieu du répertoire de travail du fichier en cours d'édition:

set backupdir=~/.vim/backup//
set directory=~/.vim/swap//
set undodir=~/.vim/undo//

L'utilisation de doubles barres obliques dans le chemin indique à vim d'activer une fonctionnalité permettant d'éviter les collisions de noms. Par exemple, si vous modifiez un fichier dans un emplacement et un autre dans un autre et que les deux fichiers portent le même nom, vous ne souhaitez pas qu'une collision de noms se produise dans ~/.vim/swap /. Si vous spécifiez ~/.vim/swap // avec deux barres obliques de fin, vim créera des fichiers d'échange en utilisant l'intégralité du chemin des fichiers en cours d'édition pour éviter les collisions (les barres obliques dans le chemin du fichier seront remplacées par le symbole%).

Par exemple, si vous modifiez /path/one/foobar.txt et /path/two/foobar.txt, vous verrez deux fichiers d'échange dans ~/.vim/swap/nommés% path% one% foobar.txt. et% path% two% foobar.txt, respectivement.

149
trusktr

J'ai trouvé la réponse ici :

vim -n <file>

ouvre le fichier sans fichier d'échange.

En outre:

set dir=/tmp

dans .vimrc crée les fichiers d'échange dans /tmp.

37
markus_b

voici mes paramètres de sauvegarde personnels ~/.vimrc

" backup to ~/.tmp 
set backup 
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp 
set backupskip=/tmp/*,/private/tmp/* 
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp 
set writebackup
27
cpjolicoeur

Je suis d'accord avec ceux qui s'interrogent sur la raison pour laquelle vim a besoin de toutes ces opérations de "récupération après sinistre" alors qu'aucun autre éditeur de texte ne s'en préoccupe. Je ne veux pas que vim crée AUCUN fichier supplémentaire dans le répertoire du fichier modifié lorsque je l'édite, merci beaucoup. À cette fin, j'ai ceci dans mon _vimrc pour désactiver les fichiers d'échange et déplacer les fichiers de "sauvegarde" irritants vers le répertoire Temp:

" Uncomment below to prevent 'tilde backup files' (eg. myfile.txt~) from being created
"set nobackup

" Uncomment below to cause 'tilde backup files' to be created in a different dir so as not to clutter up the current file's directory (probably a better idea than disabling them altogether)
set backupdir=C:\Windows\Temp

" Uncomment below to disable 'swap files' (eg. .myfile.txt.swp) from being created
set noswapfile
13
Jez

Vous pouvez définir la valeur null pour backupdir et le répertoire afin de désactiver complètement vos fichiers d'échange, mais il est généralement recommandé de les placer simplement dans un répertoire centralisé. Vim prend soin de s'assurer qu'il n'y a pas de collisions de noms ou quoi que ce soit du genre; alors, c'est une alternative totalement sûre:

set backupdir=~/.vim/backup/
set directory=~/.vim/backup/
6
monokrome

Si vous mettez set directory="" dans votre fichier exrc, vous désactivez le fichier d'échange. Cependant, cela désactivera la récupération.

Plus d'infos ici .

3
Brian Rasmussen

Si vous utilisez git, vous pouvez ajouter *.swp à .gitignore.

3
Evan Hu

créer aucun fichier d'échange vim uniquement pour un fichier particulier

autocmd bufenter  c:/aaa/Dropbox/TapNote/Todo.txt :set noswapfile
2
zzapper

Pour ceux qui essaient de définir ceci pour Rails projets, ajoutez

set directory=tmp,/tmp

dans votre

~/.vimrc

Ainsi, les fichiers .swp seront à leur emplacement naturel - le répertoire tmp (par projet).

1
valk