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.

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 .


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”.


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

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.


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


1

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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.