pycharm automatycznie konwertuje tabulatory na spacje

111

Używam Pycharm IDE do programowania w Pythonie, działa idealnie dobrze dla kodu django, więc podejrzewa się, że konwersja tabulatorów na spacje jest domyślnym zachowaniem, jednak w Pythonie IDE powoduje błędy wszędzie, ponieważ nie może automatycznie konwertować tabulatorów na spacje Czy jest sposób na osiągnięcie to.

Vaibhav Mishra
źródło

Odpowiedzi:

124

Zmień styl kodu, aby używać spacji zamiast tabulatorów:

przestrzenie

Następnie wybierz folder, który chcesz przekonwertować w widoku projektu i użyj Code| Sformatuj ponownie kod .

CrazyCoder
źródło
30
to było moje domyślne ustawienie, jednak wygląda na to, że był jakiś błąd w IDE, który nie działał, więc zrobiłem Edycja> Konwertuj wcięcie> Spacje
Vaibhav Mishra
1
Python powinien mieć wcięcie 4 spacji.
Josh,
2
Ta odpowiedź nie działa dla mnie. Nie jestem pewien, dlaczego został zaakceptowany, ponieważ nie działa również w przypadku OP. Pytanie uzupełniające: stackoverflow.com/questions/47102828/…
Stefan Monov
3
W moim przypadku musiałem wyłączyć Editor Config w Editor -> Code Style -> Enable Editor Config Support, ponieważ nieświadomie miałem ~/.editorconfigplik nadpisujący ustawienia PyCharm.
Warlike Chimpanzee
1
Możesz zmusić go do używania spacji nawet dla istniejących plików, odznaczając opcję „Wykryj i użyj wcięć istniejących plików do edycji” w ogólnym „Styl kodu”. Następnie wpisanie tabulatora w istniejącym pliku spowoduje natychmiastowe wstawienie spacji zamiast tabulatorów.
David Kinghorn
64

W przypadku selekcji można również przekształcić zaznaczenie za pomocą funkcji „Na spacje”. Zwykle używam go przez ctrl-shift-A, a następnie znajduję „To Spaces”.

Low Kian Seong
źródło
nie wydaje się działać dla wielu plików naraz. robienie tego dla każdego pliku osobno jest trochę kłopotliwe ...
CGFoX
Pan, jestes smakiem życia
Juggernaut
61

To tylko konwertuje karty bez zmiany niczego innego:

Edit -> Convert Indents -> To Spaces
runDOSrun
źródło
1
Hej, to powinno być zaakceptowane. Działa lokalnie. Na przykład przydatne dla Makefile, które muszą mieć tabulację jako wcięcie
swdev
9

ctrl + shift + A => otwórz wyskakujące okno, aby wybrać opcje, wybierz spacje, aby przekonwertować wszystkie tabulatory na spację lub tab, aby przekonwertować wszystkie spacje na tabulatory.

Ravi
źródło
karta do konwersji jako karta? czy to literówka?
Anvesh Yalamarthy
7

PyCharm 2019.1

Jeśli chcesz zmienić ustawienia ogólne:

Otwórz preferencje, w systemie macOS ;lub w systemie Windows / Linux Ctrl+ Alt+ S.

Idź do Editor -> Code Style -> Python, a jeśli chcesz śledzić PEP-8, wybierz Tab size: 4 , Indent: 4 , and Continuation indent: 8, jak pokazano poniżej:

wprowadź opis obrazu tutaj

Zastosuj zmiany i kliknij OK.

Jeśli chcesz zastosować zmiany tylko do bieżącego pliku

Opcja 1: Możesz wybrać na pasku nawigacyjnym: Edycja -> Konwertuj wcięcie -> Na spacje. (patrz zdjęcie poniżej)

wprowadź opis obrazu tutaj

Opcja 2: Możesz wykonać akcję „To Spaces”, uruchamiając skrót Find Action : Aw systemie macOS lub ctrlAWindows / Linux. Następnie wpisz „To Spaces” i uruchom akcję, jak pokazano na poniższym obrazku.

wprowadź opis obrazu tutaj

lmiguelvargasf
źródło
1

ctr + alt + shift + L -> przeformatuj cały plik :)

Aurel Curea
źródło
to tabs nie działało w celu konwersji istniejącego bloku kodu. To jedyne rozwiązanie, które u mnie zadziałało. Dzięki!
Jed
0

Dla mnie był to plik o nazwie ~ / .editorconfig, który przesłaniał moje ustawienia karty. Usunąłem to (na pewno kiedyś mnie ugryzie), ale rozwiązało to mój problem z pycharmem

Ken Myers
źródło