Comment puis-je éviter le message «Vous avez des onglets et des espaces mixtes. Répare ça?" message?

155

Chaque fois que je colle du code dans mon fichier .cs, j'obtiens le redouté "Vous avez des onglets et des espaces mixtes. Corrigez-le?" message. Il a trois options:

Tabify
Untabify
Don't show again

J'ai d'abord essayé "Tabify" à quelques reprises, jusqu'à ce que j'en ai finalement marre et que je sélectionne "Ne plus afficher"; mais c'était une psyché - je comprends toujours. J'ai même essayé "Untabify" mais en vain. Y a-t-il un paramètre que je peux modifier pour éviter ce problème récurrent?

VisualStudio2013 tabify untabify

B. Clay Shannon
la source
Avez-vous modifié votre fichier entre le moment où vous avez sélectionné "Ne plus afficher" et le moment où le message est réapparu? Est-il possible que vous ayez créé une nouvelle situation «onglets et espaces mixtes» en raison de vos modifications?
David K
C'est possible, mais je ne fais rien de différent de ce que j'ai toujours fait, et je ne reçois ce msg qu'avec ce projet / environnement (VS 2013).
B. Clay Shannon
1
Je soupçonne que ce n'est vraiment qu'une chose VS2013, car j'ai fréquemment rencontré des fichiers avec des onglets et des espaces mixtes et les versions de Visual Studio que j'ai utilisées (plusieurs d'entre elles, toutes antérieures à 2013) ne s'en sont jamais plaintes.
David K
2
Rencontré exactement le même problème dans VS2012
taz

Réponses:

252

On dirait que vous avez installé Visual Studio Productivity Power Tools 2013 . Allez dans ses paramètres et désactivez "Corriger les onglets mixtes" ...

Tools -> Options -> Productivity Power Tools -> Turn Extensions On/Off

Si vous disposez des paramètres VS par défaut, les onglets de l'éditeur sont convertis en espaces. Donc (en théorie) si vous avez cliqué sur Untabify lorsque le message apparaît, il devrait convertir tous les onglets en espaces et les erreurs ne devraient pas apparaître la prochaine fois. Travaillez-vous avec d'autres développeurs qui ont des paramètres d'onglets différents dans leur IDE?

MISE À JOUR: Dans Visual Studio 2017 et versions ultérieures , il s'agit d'une extension autonome nommée «Corriger les onglets mixtes» qui peut être désactivée ou désinstallée à partir de la fenêtre «Extensions et mises à jour» (Outils> Extensions et mises à jour).

entrez la description de l'image ici

Anthony Chu
la source
Non, je suis le seul à travailler sur ce projet; il n'est pas dans le contrôle de source (j'utilise juste un complément qui me permet de "Sauvegarder le projet" quand je veux, et il l'enregistre dans un fichier .zip)
B. Clay Shannon
1
LOL ... Pour ce que ça vaut, j'ai juste activé le paramètre, mis un tas d'onglets dans mon fichier à l'aide du Bloc-notes, puis j'ai obtenu l'invite. Cliquer sur untabify a transformé tous les onglets en espaces et je ne reçois plus le message pour ce fichier.
Anthony Chu
Après que cet "outil de productivité" m'a coûté quelques heures de débogage, il s'éteint. Il "corrigeait" un espace entre les classes, le changeant en onglet, qui à cause de la façon dont les choses étaient disposées ressemblait à un espace. Bien sûr, choisir cette classe? Impossible, car c'était "classA [tab] classB".
David T.Macknet
8
Cela doit être mis à jour pour VS2017 maintenant. En fait, c'est sa propre extension qui peut être désactivée maintenant
Joe Phillips
@JoePhillips avez-vous découvert quelque chose à ce sujet pour VS2017? J'ai même désinstallé l'extension, mais j'ai toujours eu ce message ennuyeux. (btw: les paramètres de l'extension continuent à apparaître dans la fenêtre des paramètres vs après la désinstallation et le redémarrage).
René Vogt
74

Mise à jour pour Visual Studio 2017. Si vous souhaitez désactiver le "Vous avez des onglets et des espaces mixtes. Résoudre ce problème?" message, vous devriez aller à

Outils → Extensions et mises à jour…

Dans les fenêtres qui sont apparues, recherchez Corriger les onglets mixtes (image ci-dessous) et cliquez sur Désactiver ou Désinstaller en fonction de ce que vous voulez.

Désactivation des onglets mixtes

Milan Leškanič
la source
3
Je souhaite qu'il le fasse simplement automatiquement. J'ai configuré l'éditeur de texte pour utiliser des tabulations au lieu d'espaces, mais lorsque je passe à une nouvelle ligne, le retrait est défini comme des espaces.
Sinjai
1
Fonctionne également pour Visual Studio 2019.
utilisateur du
3
Pour VS 2019, il s'agit de " Extensions → Gérer les extensions ".
Uwe Keim
13

Connexes: Si vous voulez que les outils de productivité vous avertissent des tabulations / espaces, mais que vous continuez à recevoir le message juste après avoir cliqué sur Corriger cela, regardez dans Outils> Options> Éditeur de texte> [langue]> Onglets.

Définissez ceci sur Conserver les onglets

Si vous l'avez défini sur Insérer des espaces et que vous cliquez sur Conserver les onglets dans la notification Power Tools, VS réinsérera les espaces après l'enregistrement, provoquant la réapparition immédiate de la notification ... aaet maintenant vous êtes coincé dans une boucle.

Koert van Kleef
la source
3

Editez le fichier avec vim run: retab et enregistrez le fichier et c'est fait!.

vim file 
:retab
:wq

avec: retab vous pouvez convertir tous les onglets en espaces, si vous définissez expandtab (: set expandtab) cela signifie que développer tous les onglets dans des espaces ou vice-versa (: set noexpandtab) et tous les onglets créés avec un espace seront convertis en onglets.

Sérgio
la source
ou tout simplement autoformat dans Visual Studio et il fait la même chose
John Livermore