ForHosting KIT · Text & KI

Tabs in Leerzeichen

Ein Tab am Zeilenanfang wird zu 4 Leerzeichen, ein Tab nach einem Zeichen aber zu 3: Jeder Tab springt zum nächsten Tabstopp, sodass Ihre Ausrichtung erhalten bleibt und die Datei nur noch Leerzeichen enthält. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Text
function hi() { return true; }
Tabulatorbreite
4
Erhalten Sie
Text
function hi() { return true; }
Ersetzte Tabulatoren
1
Hinzugefügte Leerzeichen
4
Zeichen vorher
31

Gemischte Einrückung mit Tabs und Leerzeichen ist einer der häufigsten Stilkonflikte in Softwareteams und zugleich eine der stillsten Ursachen für kaputte Diffs, fehlschlagende Patches und Continuous-Integration-Linter, die den Commit ablehnen. Ein Tabs-zu-Leerzeichen-Konverter nimmt Quelltext, der noch Tabulatorzeichen enthält, und schreibt jedes Tab als Leerzeichen um, sodass die visuellen Spalten erhalten bleiben und die Datei nur noch mit Leerzeichen eingerückt ist. Diese Fähigkeit wandert jede Zeile von links nach rechts, erhöht einen Spaltenzähler für jedes Zeichen und fügt bei einem Tab genau so viele Leerzeichen ein, dass der nächste Tabstopp Ihrer gewählten Breite erreicht wird. Sowohl die Blockeinrückung am Zeilenanfang als auch Ausrichtungs-Tabs mitten in der Zeile werden expandiert. Vorhandene Leerzeichen bleiben unangetastet, damit beabsichtigte Mehrfachlücken nicht kollabieren.

Wie Tabstopps Tabs zu Leerzeichen expandieren, ohne die Ausrichtung zu verlieren

Ein Tabulatorzeichen ist keine feste Anzahl von Leerzeichen; es ist ein Sprung zum nächsten Vielfachen der Tabbreite ab Zeilenanfang. Editoren und Terminals nutzen diese Regel, damit ein Tab nach einer kurzen Beschriftung und einer nach einer langen auf demselben Spaltenraster landen. Führende Einrückung aus einem oder mehreren Tabs wird so zu einem sauberen Vielfachen von Leerzeichen, und Inline-Tabs für tabellenartige Ausrichtung in Kommentaren oder Parameterlisten behalten ihre visuellen Spalten statt in einem plumpen Ersetzen jedes Tabs durch dieselbe feste Leerzeichenfolge zu enden.

Wagenrücklaufzeichen bleiben bei CRLF-Dateien erhalten, ohne die Spalte vor dem Linefeed zurückzusetzen, sodass Windows-Zeilenenden die Spaltenarithmetik nicht durcheinanderbringen.

Wann sich das Umwandeln von Tabs lohnt

Stil-Pipelines brauchen oft einen deterministischen Umschreibeschritt vor Formatierern, die nur Leerzeichen-Einrückung annehmen, oder nach Importen aus Editoren, die noch harte Tabs erzeugen. Dokumentationsseiten und Coding-Challenge-Plattformen, die Studenteneinreichungen annehmen, können Tabs serverseitig normalisieren, damit Auto-Grader reine Leerzeichendateien vergleichen und nie an unsichtbaren Tab-Unterschieden scheitern. Migrationsskripte, die ein Legacy-Repository massenhaft von Tabs zu Leerzeichen wandeln, können denselben Vertrag aus einer Shell-Schleife oder einem Edge-Worker aufrufen, ohne auf jedem Laptop Node-Module zu installieren.

Content-Teams, die für Tabs-zu-Leerzeichen-Konverter ranken, profitieren von einem kostenlosen Browserpfad, der byteweise dem bezahlten Automationspfad entspricht, sodass Marketing und Engineering-Runbooks nicht auseinanderlaufen. Fehlgeschlagene Validierung wird nicht berechnet.

Hausaufgaben und LMS-Abgaben

Normalisieren Sie Studentencode beim Upload, damit Auto-Grader nur Leerzeichendateien vergleichen und nicht an unsichtbaren Tab-Zeichen scheitern.

Wie expandiert der Tabs-zu-Leerzeichen-Konverter jedes Tab?

Führende und Inline-Tabs expandieren so und die visuelle Ausrichtung bleibt erhalten.

Was passiert, wenn mein Text keine Tabulatorzeichen hat?

Sie können das Zurückschreiben überspringen, wenn changed false ist.

Warum wurde ein Tab zu drei statt zu vier Leerzeichen?

Weil ein Tab ein Sprung zum nächsten Tabstopp ist, kein fester Block aus Leerzeichen. Bei Breite 4 braucht ein Tab nach einem Zeichen nur drei Leerzeichen, um diesen Tabstopp zu erreichen.

Welche Tabbreite sollte ich wählen?

Nehmen Sie die Breite, die Ihr Editor oder Ihr Styleguide erwartet. Standard ist 4, die übliche Einstellung moderner Editoren, und jede ganze Zahl von 1 bis 16 ist möglich, also auch der Stil mit zwei Leerzeichen.

Bleiben Windows-Zeilenenden erhalten?

Ja. Wagenrückläufe bleiben unverändert, und die Spaltenzählung beginnt erst beim Zeilenvorschub neu. Dateien mit Windows-Zeilenenden behalten ihre Enden und ihre ausgerichteten Spalten.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev/tabs-to-spaces

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/tabs-to-spaces \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"function hi() {\n\treturn true;\n}"}'
{
  "text": "function hi() {\n\treturn true;\n}"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.tabs_to_spaces",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Wie Tabstopps Tabs zu Leerzeichen expandieren, ohne die Ausrichtung zu verlieren

Dieser Konverter setzt dieselbe Regel um: Er hält einen nullbasierten Spaltenindex, der bei jedem Zeilenvorschub zurückgesetzt wird, erhöht ihn um eins für jedes gewöhnliche Zeichen (einschließlich gewöhnlicher Leerzeichen) und berechnet bei einem Tab n gleich tab_size minus Spalte modulo tab_size, gibt genau n Leerzeichen aus und erhöht die Spalte um n. Deshalb wird ein Tab in Spalte null bei tab_size vier zu vier Leerzeichen, während ein Tab in Spalte eins zu drei Leerzeichen wird und ein Tab, der bereits auf einem Stopp sitzt, einen vollen neuen Stopp von wieder vier Leerzeichen erzeugt. Der Algorithmus ist ein einziger Durchlauf von links nach rechts ohne Lookahead, ohne Sprachparsing und ohne Netzwerkanrufe, sodass dieselbe Eingabe auf jedem Worker und im Browser stets dieselbe Ausgabe liefert.

Eingabefelder, Antwortform, Grenzen und Validierungsfehler

Senden Sie einen JSON-Körper mit dem Pflicht-Stringfeld text, das den zu normalisierenden Quellcode oder Klartext enthält. Optionale Aliasse wie input, code, source, content und body werden für dieselbe Nutzlast akzeptiert, damit bestehende Formulare und Skripte weniger umbenannt werden müssen. Die optionale Ganzzahl tab_size setzt die Tabstoppbreite; Standard ist vier, passend zu den meisten modernen Editoren und zu Style-Guides von JavaScript, Python und Rust, die nach dem Entfernen von Tabs vier- oder zweistellige Leerzeicheneinrückung erwarten. Gültig sind Ganzzahlen von eins bis sechzehn einschließlich; Werte außerhalb, Nicht-Ganzzahlen, NaN und Infinity scheitern mit invalid_input und benennen tab_size. Fehlendes text, kein String oder leerer String scheitern mit invalid_input und werden nicht berechnet. Die maximale Eingabelänge beträgt einhunderttausend Zeichen, damit ein Aufruf im Arbeitsspeicherbudget des Workers für typische Quelldateien und kleine Mehrdateiauszüge bleibt. Bei Erfolg enthält die Antwort text, die vollständig expandierte Zeichenkette; tab_size, die angewendete Breite; tabs_replaced, wie viele Tab-Zeichen gefunden wurden; spaces_added, die Gesamtzahl eingefügter Leerzeichen; chars_before und chars_after, die Längen vor und nach der Umwandlung; line_count, die Zeilenzahl nach dem Aufteilen an üblichen Zeilenumbruchformen; changed, ein boolesches true, wenn mindestens ein Tab expandiert wurde; und message, eine kurze menschliche Zusammenfassung der Umschreibung. Enthielt die Eingabe keine Tabs, wird text unverändert zurückgegeben, tabs_replaced ist null, changed ist false und die Meldung besagt, dass nichts geändert wurde, damit Sie das Zurückschreiben der Datei überspringen können.

Wann eine Tabs-zu-Leerzeichen-API in echten Abläufen Nutzen stiftet

Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz. Halten Sie Anfragen unter dem Zeichenlimit, pinnen Sie tab_size in Ihrer Konfiguration, und Sie erhalten reproduzierbaren reinen Leerzeichen-Quellcode für CI, LMS-Plugins und Offline-Batches, ohne einen sprachbewussten Formatierer nur für eine zeichenebene Einrückungskorrektur aufzustellen.

Stil-Normalisierung in der CI

Expandieren Sie harte Tabs zu Leerzeichen mit fester tab_size vor Lint und Format, damit Diffs sauber bleiben und Werkzeuge mit Ablehnung gemischter Einrückung bestehen.

Massenumschreibung von Legacy-Repos

Wandeln Sie tab-eingerückte Module per API stapelweise in reine Leerzeichen um und bewahren Sie Inline-Ausrichtungs-Tabs als spaltenkorrekte Leerzeichenfolgen.

Welche Werte darf ich für tab_size verwenden?

Jede Ganzzahl von 1 bis 16 einschließlich. Der Standard ist 4. Werte außerhalb oder Nicht-Ganzzahlen scheitern mit invalid_input und werden nicht berechnet.

Werden vorhandene Leerzeichen entfernt oder kollabiert?

Nein. Vorhandene Leerzeichen bleiben unverändert. Nur Tab-Zeichen U+0009 werden durch die Leerzeichenfolge ersetzt, die die aktuelle Spalte und tab_size erfordern.

Was kostet der Tabs-zu-Leerzeichen-Konverter?

Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.

Vollständige KIT-Dokumentation lesen →