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?
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.
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],
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).
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" }
]
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
.
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.
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.
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
}