Jak mogę zapobiec wyświetlaniu komunikatu „Masz pomieszane tabulatory i spacje. Napraw to?" wiadomość?

155

Za każdym razem, gdy wklejam kod do pliku .cs, pojawia się przerażający komunikat „Masz mieszane tabulatory i spacje. Naprawić to?” wiadomość. Ma trzy opcje:

Tabify
Untabify
Don't show again

Najpierw kilka razy próbowałem „Tabify”, aż w końcu miałem dość i wybrałem „Nie pokazuj ponownie”; ale to była psychika - nadal to rozumiem. Próbowałem nawet „Untabify”, ale bezskutecznie. Czy jest jakieś ustawienie, które mogę zmienić, aby zapobiec temu ponownemu [o] występowaniu?

VisualStudio2013 tabify unabify

B. Clay Shannon
źródło
Czy plik był edytowany między wybraną opcją „Nie pokazuj ponownie” a momentem ponownego pojawienia się komunikatu? Czy to możliwe, że utworzyłeś nową sytuację „mieszane tabulatory i spacje” z powodu swoich zmian?
David K
Jest to możliwe, ale nie robię nic innego niż zawsze i otrzymuję tę wiadomość tylko z tym projektem / środowiskiem (VS 2013).
B. Clay Shannon
1
Podejrzewam, że to naprawdę jest tylko VS2013, ponieważ często napotykałem pliki z mieszanymi kartami i spacjami, a wersje Visual Studio, z których korzystałem (kilka z nich, wszystkie przed 2013 rokiem) nigdy na to nie narzekały.
David K
2
Napotkano dokładnie ten sam problem w VS2012
taz

Odpowiedzi:

252

Wygląda na to, że masz zainstalowany program Visual Studio Productivity Power Tools 2013 . Otwórz jego ustawienia i wyłącz opcję „Popraw karty mieszane” ...

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

Jeśli masz domyślne ustawienia VS, karty w edytorze są konwertowane na spacje. Tak więc (teoretycznie), jeśli kliknąłeś Untabify, gdy pojawi się komunikat, powinno to przekonwertować wszystkie tabulatory na spacje, a błędy nie powinny pojawić się następnym razem. Czy współpracujesz z innymi programistami, którzy mają różne ustawienia kart w swoim IDE?

AKTUALIZACJA: W programie Visual Studio 2017 i nowszych jest to samodzielne rozszerzenie o nazwie „Napraw mieszane karty”, które można wyłączyć lub odinstalować w oknie „Rozszerzenia i aktualizacje” (Narzędzia> Rozszerzenia i aktualizacje).

wprowadź opis obrazu tutaj

Anthony Chu
źródło
Nie, tylko ja pracuję nad tym projektem; to nie jest w kontroli źródła (po prostu używam dodatku, który pozwala mi "Backup Project" kiedy chcę i zapisuje go w pliku .zip)
B. Clay Shannon
1
LOL ... Po prostu włączyłem ustawienie, umieściłem kilka kart w moim pliku za pomocą Notatnika, a następnie otrzymałem monit. Kliknięcie „odznacz” zamieniło wszystkie karty w spacje i nie otrzymuję ponownie wiadomości dla tego pliku.
Anthony Chu
Po tym, jak to „narzędzie zwiększające produktywność” kosztowało mnie kilka godzin debugowania, zostaje wyłączone. „Naprawił” odstęp między klasami, zmieniając go na tabulator, który ze względu na sposób rozplanowania wyglądał jak spacja. Oczywiście, wybierając tę klasę? Niemożliwe, bo to było „klasa A [karta] klasa B”.
David T. Macknet
8
Należy to teraz zaktualizować dla VS2017. Jak się okazuje, jest to jego własne rozszerzenie, które można teraz wyłączyć
Joe Phillips
@JoePhillips czy dowiedziałeś się czegoś na ten temat w związku z VS2017? Nawet odinstalowałem rozszerzenie, ale nadal otrzymałem irytującą wiadomość. (przy okazji: ustawienia rozszerzenia nadal pojawiają się w oknie ustawień vs po odinstalowaniu i ponownym uruchomieniu).
René Vogt
74

Aktualizacja dla programu Visual Studio 2017. Jeśli chcesz wyłączyć komunikat „Masz mieszane karty i spacje. Naprawić to?” wiadomość, powinieneś udać się do

Narzędzia → Rozszerzenia i aktualizacje…

W wyskakujących oknach zlokalizuj Napraw mieszane karty (obrazek poniżej) i kliknij Wyłącz lub Odinstaluj w zależności od tego, co chcesz.

Wyłączanie kart mieszanych

Milan Leškanič
źródło
3
Chciałbym, żeby robił to automatycznie. Mam edytor tekstu ustawiony na używanie tabulatorów zamiast spacji, ale kiedy przechodzę do nowego wiersza, wcięcie jest ustawiane jako spacje.
Sinjai
1
Działa również w programie Visual Studio 2019.
userom
3
W VS 2019 jest to „ Rozszerzenia → Zarządzaj rozszerzeniami ”.
Uwe Keim
13

Powiązane: Jeśli chcesz, aby narzędzia Productivity Power Tools powiadamiały Cię o tabulatorach / spacjach, ale otrzymujesz komunikat od razu po kliknięciu opcji Napraw to, zajrzyj do menu Narzędzia> Opcje> Edytor tekstu> [język]> Karty.

Ustaw to na Keep tabs

Jeśli ustawisz ją na Wstaw spacje i klikniesz Zachowaj tabulatory w powiadomieniu o elektronarzędziach, VS ponownie wstawi spacje po zapisaniu, powodując natychmiastowe ponowne wyświetlenie powiadomienia ... aai teraz utkniesz w pętli.

Koert van Kleef
źródło
3

Edytuj plik za pomocą vim run: retab i zapisz plik i gotowe!

vim file 
:retab
:wq

za pomocą: retab możesz konwertować wszystkie tabulatory na spacje, jeśli ustawisz expandtab (: set expandtab) oznacza to, że wszystkie zakładki będą rozszerzane w spacje lub odwrotnie (: set noexpandtab) i wszystkie zakładki utworzone ze spacjami zostaną zamienione na tabulatory.

Sérgio
źródło
lub po prostu autoformatowanie w Visual Studio i robi to samo
John Livermore