2008-12-03 6 views
6

Ich habe einige .py-Dateien, die Leerzeichen für den Einzug verwenden, und ich möchte sie in Tabs konvertieren.Tool zum Konvertieren von Python-Einrückung von Leerzeichen in Tabs?

Ich könnte leicht zusammen etwas mit Regexen hacken, aber ich kann an mehrere Randfälle denken, wo dieser Ansatz fehlschlagen könnte. Gibt es ein Tool, das dies tut, indem es die Datei analysiert und die Einrückungsebene genau so bestimmt, wie es der Python-Interpreter tut?

Antwort

15

Wenn nicht viele Dateien konvertiert werden müssen, können Sie sie unter vim öffnen und den Befehl :retab verwenden.

Weitere Informationen finden Sie unter the vim documentation.

15

Python enthält ein Skript für das Gegenteil (Tabs in Leerzeichen). Es ist C:\Python24\Tools\Scripts\reindent.py für mich

+0

Dies ist unter Linux nicht verfügbar, auch nicht auf py26. – sorin

3

In Emacs, M-x tabify wird Leerzeichen zu Tabs wo möglich konvertieren. Wahrscheinlich möchten Sie die Variable tab-width entsprechend einstellen.

Ich weiß nicht, ob dies Ihre Bedenken betrifft, dass Leerzeichen auf die gleiche Weise interpretiert werden wie der Python-Interpreter, aber Sie könnten immer Python-Modus laden und M-x indent-region verwenden.

9

: retab wird Tab mit Leerzeichen tauschen, und: retab! tauscht Räume mit Tab aus. 1 Tab = 4 Leerzeichen, 4 Leerzeichen = 1 Tab, abhängig von Ihrer Tab-Einstellung.

+0

+1, wusste nicht, dass es in beide Richtungen funktionierte; es verwendet vermutlich die Tabstop-Einstellung? – James

2

Wenn Sie Linux verwenden, können Sie auch mit unexpand rumspielen:

Convert Rohlinge in jeder DATEI in Tabulatoren, auf die Standardausgabe schreiben. Mit FILE, oder wenn FILE ist -, lesen Standard Eingang.

+0

Sie finden einen Win32-Build, wenn Sie möchten. – sorin

Verwandte Themen