it-swarm.com.de

Wie kann ich Leerzeicheneinzug in Sublime Text korrigieren/konvertieren?

Beispiel: Wenn ich ein Dokument mit 2 Leerzeichen-Einzug habe und es möchte, dass es 4 Leerzeichen-Einzug hat, wie kann ich es mit dem Texteditor Sublime automatisch konvertieren?

216
Magne

Hier ist ein netter Trick in Sublime Text 2 oder 3, um den Einrückungsabstand in einem Dokument zu konvertieren.

TL; DR:

Konvertierung von 2 Leerzeichen in 4 Leerzeichen:

Stellen Sie sicher, dass die Tabulatorbreite auf 2 festgelegt ist. Konvertieren Sie den Einzug mit zwei Leerzeichen in Tabulatoren, wechseln Sie zu Tabulatorbreite 4 und konvertieren Sie den Einzug dann wieder in Leerzeichen.

Die ausführliche Beschreibung:

Gehe zu:

View -> Indentation

Es sollte lesen:

  • Indent using spaces [x]
  • Tab width: 2

Wählen:

  • Convert Indentation to Tabs

Dann wählen Sie:

  • Tab width: 4
  • Convert Indentation to Spaces

Erledigt.

503
Magne

Ich habe tatsächlich festgestellt, dass es für meinen Verstand besser ist, Benutzervorlieben so zu definieren:

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

Der detect_indentation: false ist besonders wichtig, da Sublime diese Einstellungen in jeder Datei im Gegensatz zu den View -> Indentation-Einstellungen berücksichtigt. 

Wenn Sie Lust haben wollen, können Sie auch eine Tastenkombination zum automatischen Einrücken Ihres Codes (YMMV) definieren, indem Sie Folgendes in Sublime -> Preferences -> Key Binding - User einfügen:

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

und um den Whitespace zu visualisieren:

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],
71
Brian Gerstle

In meinen Augen fand ich eine einfachere Lösung als Magne:

Auf dem mac:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

Ändern Sie unter Windows oder anderen Plattformen cmd+f und alt+enter mit den find- und select all-Tastenkombinationen.

Hinweis: Diese Methode ist anfällig für "Fehler", wenn sich in Ihrem Code mehr als ein Leerzeichen befindet. Es ist daher weniger sicher als Magnes Methode, aber es ist schneller (für mich zumindest).

9
Automatico

Während viele der Vorschläge beim Konvertieren von 2 -> 4 Speicherplatz funktionieren. Beim Konvertieren von 4 -> 2 sind einige Probleme aufgetreten.

Ich habe am Ende verwendet: 

Sublime Text 3/Packages/User/to-2.sublime-macro

[
  { "args": null, "command": "select_all" },
  { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
  { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
  { "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
  { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]
7
Kyle Finley

Wenn Sie finden, dass Suchen und Ersetzen schneller zu verwenden sind, können Sie einen Regex zum Ersetzen wie folgt verwenden:

Find (Regex): (^|\G) {2} (Anstelle von "{2}" <space>{2} können Sie einfach zwei Leerzeichen schreiben. Zur besseren Übersicht hier verwendet.)

Ersetzen Sie durch 4 Leerzeichen oder was auch immer Sie möchten, wie \t.

5
Qtax

Ich habe ein Plugin dafür geschrieben. Sie finden es hier oder suchen Sie in der Paketsteuerung nach "ReIndent". Es macht meistens dasselbe wie Kyle Finley, aber auf bequeme Weise mit Abkürzungen für die Konvertierung zwischen 2 und 4 und umgekehrt.

5
kamilkp

Sie müssen diesen Code zu Ihren benutzerdefinierten Schlüsselbindungen hinzufügen: 

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

durch Drücken von Strg + F12 wird Ihre Datei auf eine Tabulatorgröße von 4 erneut angezeigt. Wenn Sie eine andere Tabulatorgröße wünschen, ändern Sie einfach die "Wert" -Nummer. Das Format ist ein einfacher Json.

2
patricia bezek

Das einfachste, was ich tat, war 

mein Einzug in Tabs geändert

und es hat mein Problem gelöst.

Sie können das gleiche tun, 

zu Räumen

sowie nach Ihrem Bedarf.

Erwähnte den Schnappschuss derselben.

 enter image description here

0
Indrajeet Gour

Ich hatte kürzlich ein ähnliches Problem. Ich habe den sublime Editor verwendet. Es ist kein Problem mit dem Code, sondern mit dem Editor.

Die folgenden Änderungen in den Einstellungen haben für mich funktioniert.

Sublime Text Menü -> Einstellungen -> Einstellungen: Syntaxspezifisch :

{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}
0
Ajay