pycharm konvertiert Tabulatoren automatisch in Leerzeichen

110

Ich verwende die Pycharm-IDE für die Python-Entwicklung. Sie funktioniert einwandfrei für Django-Code. Daher wird vermutet, dass das Konvertieren von Tabs in Leerzeichen das Standardverhalten ist. In Python gibt die IDE jedoch überall Fehler aus, da Tabs nicht automatisch in Leerzeichen konvertiert werden können Dies.

Vaibhav Mishra
quelle

Antworten:

124

Ändern Sie den Codestil so, dass Leerzeichen anstelle von Tabulatoren verwendet werden:

Räume

Wählen Sie dann in der Projektansicht einen Ordner aus, den Sie konvertieren möchten, und verwenden Sie Code| Code neu formatieren .

CrazyCoder
quelle
30
Dies war meine Standardeinstellung, aber es scheint, dass es einen Fehler in der IDE gab, der nicht funktionierte. Ich habe also Bearbeiten> Einzug konvertieren> Leerzeichen
Vaibhav Mishra
1
Python sollte einen 4-Leerzeichen-Einzug haben.
Josh
2
Diese Antwort funktioniert bei mir nicht. Ich bin mir nicht sicher, warum es akzeptiert wird, da es auch für OP nicht funktioniert. Folgefrage
Stefan Monov
3
In meinem Fall musste ich die Editor-Konfiguration unter Editor -> Codestil -> Editor-Konfigurationsunterstützung aktivieren deaktivieren, da ich unwissentlich eine ~/.editorconfigDatei hatte, die die Einstellungen von PyCharm überschrieb.
Warlike Schimpanse
1
Sie können die Verwendung von Leerzeichen auch für vorhandene Dateien erzwingen, indem Sie unter "Allgemeiner Codestil" das Kontrollkästchen "Vorhandene Dateieinzüge erkennen und zum Bearbeiten verwenden" deaktivieren. Wenn Sie danach eine Registerkarte in eine vorhandene Datei eingeben, werden sofort Leerzeichen anstelle von Tabulatoren eingefügt.
David Kinghorn
64

Für Auswahlen können Sie die Auswahl auch mit der Funktion "In Leerzeichen" konvertieren. Normalerweise benutze ich es einfach über Strg-Umschalt-A und finde dann "To Spaces" von dort.

Low Kian Seong
quelle
scheint nicht für mehrere Dateien gleichzeitig zu funktionieren. es für jede Datei einzeln zu tun ist eine Art Ärger ...
CGFoX
Sie, Sir, sind ein Lebensgenuss
Juggernaut
61

Dadurch werden nur die Registerkarten konvertiert, ohne dass etwas anderes geändert wird:

Edit -> Convert Indents -> To Spaces
runDOSrun
quelle
1
Hey, das sollte akzeptiert werden. Es funktioniert lokal. ZB nützlich für Makefile, die Tab als Einrückung haben müssen
swdev
9

Strg + Umschalt + A => Popup-Fenster öffnen, um Optionen auszuwählen , Leerzeichen auswählen , um alle Tabulatoren als Leerzeichen zu konvertieren, oder Tabulatoren , um alle Leerzeichen als Tabulatoren zu konvertieren.

Ravi
quelle
Registerkarte als Registerkarte konvertieren? ist es ein Tippfehler?
Anvesh Yalamarthy
7

PyCharm 2019.1

Wenn Sie die allgemeinen Einstellungen ändern möchten:

Öffnen Sie Präferenzen, in macOS ;oder in Windows / Linux Ctrl+ Alt+ S.

Gehen Sie zu Editor -> Codestil -> Python. Wenn Sie PEP-8 folgen möchten, wählen Sie Tabulatorgröße: 4 , Einzug: 4 und Fortsetzungseinzug: 8 wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Übernehmen Sie die Änderungen und klicken Sie auf OK.

Wenn Sie die Änderungen nur auf die aktuelle Datei anwenden möchten

Option 1: In der Navigationsleiste können Sie wählen: Bearbeiten -> Einzug konvertieren -> In Leerzeichen. (siehe Bild unten)

Geben Sie hier die Bildbeschreibung ein

Option 2: Sie können die Aktion "Zu Räumen" ausführen, indem Sie die Verknüpfung "Aktion suchen" ausführen : Aunter macOS oder ctrlAunter Windows / Linux. Geben Sie dann "To Spaces" ein und führen Sie die Aktion wie in der Abbildung unten gezeigt aus.

Geben Sie hier die Bildbeschreibung ein

lmiguelvargasf
quelle
1

Strg + Alt + Umschalt + L -> ganze Datei neu formatieren :)

Aurel Curea
quelle
to tabs funktionierte nicht, um einen vorhandenen Codeblock zu konvertieren. Dies ist die einzige Lösung, die für mich funktioniert hat. Vielen Dank!
Jed
0

Für mich hatte es eine Datei namens ~ / .editorconfig, die meine Registerkarteneinstellungen überschrieb. Ich habe das entfernt (sicherlich wird mich das eines Tages wieder beißen), aber es hat mein Pycharmproblem behoben

Ken Myers
quelle