Antworten:
Hier ist ein guter Trick in Sublime Text 2 oder 3, um Ihren Einrückungsabstand in ein Dokument zu konvertieren.
TL; DR:
Konvertieren von 2 Feldern in 4 Felder:
Stellen Sie sicher, dass die Tabulatorbreite auf 2 eingestellt ist. Konvertieren Sie Ihren Einzug mit zwei Leerzeichen in Tabulatoren, wechseln Sie zu Tabulatorbreite 4 und konvertieren Sie den Einzug zurück in Leerzeichen.
Die detaillierte Beschreibung:
Gehe zu:
View -> Indentation
Es sollte lauten:
Indent using spaces [x]
Tab width: 2
Wählen:
Convert Indentation to Tabs
Wählen Sie dann:
Tab width: 4
Convert Indentation to Spaces
Getan.
Ich fand es tatsächlich besser für meine Vernunft, Benutzereinstellungen so zu definieren:
"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false
Das detect_indentation: false
ist besonders wichtig, da es Sublime zwingt diese Einstellungen in jeder Datei zu ehren, wie zu den gegenüberliegenden View -> Indentation
Einstellungen.
Wenn Sie Lust haben, können Sie auch eine Tastenkombination definieren, um Ihren Code (YMMV) automatisch neu einzurücken, indem Sie Folgendes einfügen Sublime -> Preferences -> Key Binding - User
:
[
{ "keys": ["ctrl+i"], "command": "reindent" }
]
und um das Leerzeichen 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],
Ich fand in meinem Kopf 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.
Auf Windows oder anderen Plattformen ändern cmd+f
und alt+enter
mit was auch immer Ihre find
und select all
Hotkeys sind.
Hinweis: Diese Methode ist anfällig für "Fehler", wenn Sie mehr als ein Leerzeichen in Ihrem Code haben. Es ist daher weniger sicher als Magnes Methode, aber es ist schneller (zumindest für mich).
RubyFormat
, können Sie einfach die gewünschte Registerkartengröße einstellen und dann den Code neu formatieren. Im Falle RubyFormat
wäre es cmd+shift+R
.
Während viele der Vorschläge beim Konvertieren von 2 -> 4 Leerzeichen funktionieren. Beim Konvertieren von 4 -> 2 sind einige Probleme aufgetreten.
Folgendes habe ich letztendlich 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 das Suchen und Ersetzen schneller finden, können Sie einen Regex-Ersatz wie folgt verwenden:
Suchen (regulärer Ausdruck): (^|\G) {2}
(Anstelle von "{2}" können <space>{2}
Sie auch zwei Leerzeichen schreiben. Wird hier zur Verdeutlichung verwendet.)
Ersetzen Sie durch 4 Leerzeichen oder was auch immer Sie möchten \t
.
Sie müssen diesen Code zu Ihren benutzerdefinierten Tastenkombinationen hinzufügen:
{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
Durch Drücken von Strg + F12 wird Ihre Datei erneut auf eine Tabulatorgröße von 4 eingestellt. Wenn Sie eine andere Tabulatorgröße wünschen, ändern Sie einfach die "Wert" -Nummer. Das Format ist ein einfacher JSON.
{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
Das Einfachste, was ich getan habe, war:
änderte meine Einrückung in Tabulatoren
und es löste mein Problem.
Sie können das gleiche tun,
zu Räumen
sowie nach Ihren Bedürfnissen.
Erwähnte den Schnappschuss desselben.
Vor kurzem hatte ich ein ähnliches Problem. Ich habe den großartigen Editor verwendet. Es ist kein Problem mit dem Code, sondern mit dem Editor.
Die folgende Änderung der Voreinstellungen hat bei mir funktioniert.
Sublime Text-Menü -> Einstellungen -> Einstellungen: Syntaxspezifisch :
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}