Ich weiß, dass es viele Beiträge dazu gibt, aber ich konnte es nicht schaffen, dass es funktioniert.
Ich benutze Registerkarten zur Codierung. Gibt es eine Möglichkeit, immer Leerzeichen in Tabs umzuwandeln? Das heißt beim Öffnen und beim Speichern von Dateien? Hat jemand eine Idee?
// bearbeiten:
Mein Wunsch ist es, dies automatisch zu tun! -> öffnen, speichern oder im laufenden Betrieb
Weiß jemand, wie es geht?
Ich habe versucht dies :
import sublime, sublime_plugin, os
class ExpandTabsOnSave(sublime_plugin.EventListener):
# Run ST's 'expand_tabs' command when saving a file
def on_pre_save(self, view):
if view.settings().get('expand_tabs_on_save') == 1:
view.window().run_command('expand_tabs')
Und hier sind meine Benutzereinstellungen:
{
"auto_complete_selector": "source - comment, meta.tag - punctuation.definition.tag.begin",
"auto_indent": true,
"detect_indentation": true,
"draw_white_space": "all",
"ensure_newline_at_eof_on_save": true,
"expand_tabs_on_save": true,
"font_face": "SourceCodePro-Regular",
"font_size": 10,
"format_on_save": true,
"ignored_packages":
[
"Vintage"
],
"indent_to_bracket": true,
"open_files_in_new_window": false,
"smart_indent": true,
"tab_size": 4,
"translate_tabs_to_spaces": false,
"trim_automatic_white_space": true,
"trim_trailing_white_space_on_save": true,
"use_tab_stops": false,
"Word_wrap": false
}
In der rechten unteren Ecke des Textfensters "Sublime Text" sehen Sie einen Einrückungsindikator, der wie folgt aussieht:
Wenn Sie darauf klicken, wird ein Menü mit Optionen geöffnet, mit denen Sie die Einstellungen für die Einrückung anpassen und vor allem Leerzeichen in Tabulatoren und umgekehrt konvertieren können.
Das gleiche Menü ist unter View -> Indentation
aufgeführt.
Am unteren Rand des Sublime-Fensters sehen Sie etwas, das Ihre Tab/Space-Einstellung darstellt.
Sie erhalten dann ein Dropdown mit einer Reihe von Optionen. Die Optionen, die Sie interessieren, sind:
Wenden Sie die gewünschte Einstellung auf das gesamte Dokument an.
Hoffe das hilft.
Wie Sie vielleicht bereits wissen, können Sie Ihre Einstellungen für die Einstellung in Preferences.sublime-settings
anpassen. Beispiel:
"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false
Dadurch wird Ihr Editor auf die Verwendung von Registerkarten mit einer Breite von 4 Stellen eingestellt. Dabei wird das Standardverhalten überschrieben, das dazu führt, dass Sublime dem Einzug der von Ihnen bearbeiteten Datei entspricht. Bei diesen Einstellungen werden durch das Einrücken der Datei Leerzeichen durch Tabulatoren ersetzt.
Was das automatische Einrücken beim Öffnen einer Datei angeht, ist dies nicht ganz so einfach (aber wahrscheinlich keine gute Idee, da Whitespace-Änderungen Chaos auf Dateifehler verursachen). Was könnte eine bessere Vorgehensweise sein: Sie können eine Verknüpfung zum erneuten Einrücken bilden und diese auslösen, wenn Sie eine neue Datei öffnen, die repariert werden muss.
In meinem Fall löste diese Zeile mein Problem:
"translate_tabs_to_spaces": false
Sie können die Befehlspalette verwenden, um dieses Problem zu beheben.
Schritt 1: Ctrl + Shift + P
(um die Befehlspalette zu aktivieren)
Schritt 2: Geben Sie "Einrückung" ein und wählen Sie "Indentation: Convert to Tabs"
Hier ist eine Lösung, die beim Öffnen einer Datei automatisch in Tabulatoren umgewandelt wird.
Erstellen Sie diese Datei: .../Packages/User/on_file_load.py
:
import sublime
import sublime_plugin
class OnFileLoadEventListener(sublime_plugin.EventListener):
def on_load_async(self, view):
view.run_command("unexpand_tabs")
HINWEIS. Dies bewirkt, dass sich die Datei nach dem Öffnen in einem nicht gespeicherten Zustand befindet, auch wenn keine tatsächliche Konvertierung von Speicherplatz in Tabulatoren stattgefunden hat.
Um Leerzeichen automatisch in Tabs beim Speichern umzuwandeln, fügen Sie das folgende Python-Skript einem neu erstellten Unterordner namens "UnexpandTabsOnSave" innerhalb von "$ SUBLIME_HOME $\Packages \" hinzu:
import sublime, sublime_plugin, os
class ConvertSpacesToTabsOnSave( sublime_plugin.EventListener ):
# Run Sublime's 'unexpand_tabs' command when saving any file
def on_pre_save( self, view ):
view.window().run_command( 'unexpand_tabs' )
Vielen Dank für die erste Ressource.