Quelle est la bonne façon de faire ignorer à git les fichiers temporaires produits par vim dans tous les répertoires (globalement sur le système ou localement pour un seul projet)?
git
vim
ignore
temporary-files
jrdioko
la source
la source
*.sw?
résout le standard.swp
mais aussi les extensions de fichier d'échange alternatives comme.swo
..swf
fichiers. Je déconseille fortement de le faire, surtout si vous créez une application Flash..
devrait empêcher cela cependant..tmp.swp
,.tmp.swo
, ...,.tmp.swa
), vim crée.tmp.svz
. Je manque de patience pour voir ce qui vient après.tmp.saa
- peut-être.tmp.rzz
? MISE À JOUR: En regardant dans la source (src/memline.c
, fonctionfindswapname()
), il abandonne après.saa
avec une erreur: "E326: Trop de fichiers d'échange trouvés".Réponses:
Les fichiers temporaires Vim se terminent par ~ afin que vous puissiez ajouter au fichier
.gitignore
la ligneVim crée également des fichiers d'échange qui ont les extensions swp et swo. pour les supprimer, utilisez les lignes:
Cela ignorera tous les fichiers temporaires vim dans un seul projet
Si vous voulez le faire globalement, vous pouvez créer un fichier .gitignore dans votre maison (vous pouvez lui donner un autre nom ou emplacement) et utiliser la commande suivante:
Ensuite, il vous suffit d'ajouter les fichiers que vous souhaitez ignorer à ce fichier
la source
.*.sw*
dans my.gitignore
pour les masquer tous..*.sw?
être plus précis. (Bien que j'aie vu des gens utiliser une variante de*.sw*
pour soupçonner que je suis celui qui manque quelque chose de vraiment évident ...).*.s[a-w][a-z]
ignorera les.svg
fichiers.Vous pouvez également configurer vim pour enregistrer les fichiers d'échange dans un emplacement séparé, par exemple en ajoutant des lignes similaires à ce qui suit dans votre
.vimrc
fichier:Voir cette astuce vim pour plus d'informations.
la source
$TMPDIR
pour obtenir le tempdir réel :)$TEMP
dire?set undodir=$TEMP//
, car j'enregistre également des fichiers d'annulation persistants.C'est quelque chose qui ne devrait être fait que par utilisateur, et non par référentiel. Si Joe utilise emacs, il voudra ignorer les fichiers de sauvegarde emacs, mais Betty (qui utilise vi) voudra que les fichiers de sauvegarde vi soient ignorés (dans de nombreux cas, ils sont similaires, mais il existe environ 24 893 éditeurs communs et c'est assez ridicule d'essayer d'ignorer toutes les différentes extensions de sauvegarde.)
En d'autres termes, ne mettez rien dedans
.gitignore
oucore.excludes
dedans$GIT_DIR/config
. Mettez les informations à la$HOME/.gitconfig
place (comme le suggère nunopolonia avec--global
.) Notez que "global" signifie par utilisateur, pas par système.Si vous voulez une configuration à travers le système pour tous les utilisateurs (ce que vous n'avez pas), vous aurez besoin d'un mécanisme différent. (Peut-être avec la configuration des modèles avant l'initialisation du référentiel.)
la source
Je recommanderais également de penser à ignorer les fichiers comme:
car vous pouvez avoir des fichiers se terminant par
.swp
la source
Quittez vim avant "git commit".
pour
vim
utiliser d'autres dossiers pour les fichiers de sauvegarde, (/tmp
par exemple):pour que vim cesse d'utiliser le dossier actuel pour les fichiers .swp:
L'utilisation
-=, +=
serait généralement bonne, car vim a d'autres valeurs par défaut pour bdir, dir , nous ne voulons pas tout effacer. Consultez l'aide de vim pour en savoir plus sur bdir, dir :la source
Voici le code VIM réel qui génère les extensions de fichier d'échange:
Cela générera des fichiers d'échange au format:
Ce qui est à peu près ce qui est inclus dans le propre fichier gitignore de github pour VIM .
Comme d'autres l'ont correctement noté, ce .gitignore ignorera également les fichiers image .svg et les fichiers flash Adobe .swf .
la source
J'ai trouvé que git ignorerait les fichiers temporaires créés par vim:
Il peut également être consulté ici .
la source
.swf
fichiers embêtants qui continuent d'apparaître chaque fois que vous créez une application flash..svg
ce qui peut être un problème.*.un~
puisque vous l'avez*~
sûr,
il suffit de créer un ".gitignore" sur le répertoire personnel de votre projet et de contenir
c'est tout
en une seule commande
la source
echo *.swp >> .gitignore
qu'il vaut mieux éviter de remplacer le précédent .gitignore.echo '*.swp' >> .gitignore
>
personnages. Une fois, j'ai fait cela dans lepasswd
fichier, puis je me suis déconnecté :-)http://vimdoc.sourceforge.net/htmldoc/recover.html
http://www.vim.org/scripts/script.php?script_id=1075
la source
Dans mon cas, les fichiers temporaires sont déjà validés par des actions précédentes, donc la modification de .gitignore n'affectera pas ces fichiers validés ..., vous devez d'
git rm files_to_be_ignored --cache
abord, puis valider, puis DONE.la source
Cela fonctionne sur un Mac, comme l'a noté Alex Moore-Niemi:
Assurez-vous d'utiliser
TMPDIR
et nonTEMPDIR
.la source
Si vous utilisez le contrôle de code source. les fichiers temporaires vim sont tout à fait inutiles.
Vous voudrez donc peut-être configurer vim pour ne pas les créer.
Modifiez simplement votre ~ / .vimrc et ajoutez ces lignes:
la source
screen
(oudtach
s'il ne veut pas toutes les fonctionnalités de l'écran). Les coupures de courant sont gérées par UPS. Les sauvegardes sont effectuées par {votre logiciel préféré pour sauvegarder tous les fichiers importants}. J'utilise des fichiers d'échange pour être averti lorsque j'essaie d'éditer des fichiers déjà modifiés, des fichiers de sauvegarde car avoir N + 1e place avec la sauvegarde ne nuit pas et annule les fichiers car l'annulation persistante est pratique. Seuls les fichiers d'annulation sont un peu importants pour moi.