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 ctrl⇧AWindows / 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.