Ich weiß, dass es viele Beiträge dazu gibt, aber ich konnte es nicht zum Laufen bringen.
Ich benutze Tabs zum Codieren. Gibt es eine Möglichkeit, Leerzeichen immer in Tabulatoren umzuwandeln? Dh beim Öffnen und beim Speichern von Dateien? Hat jemand eine Idee?
// edit:
Mein Wunsch ist es das automatisch zu machen ! -> ö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
}
Ctrl + ~
und sehen, ob es Plugin-Fehler gibt? Und wenn Sie Package Control installiert haben, können Sie sehen, obExpandTabsOnSave
es als installiertes Plugin aufgeführt ist?print("debug")
, dem Plugin ein ähnliches oder ähnliches Plugin hinzuzufügen, um festzustellen, ob es ausgeführt wird oder nicht.Antworten:
In der unteren rechten Ecke Ihres Sublime Text-Fensters sehen Sie eine Einrückungsanzeige, die ungefähr so aussieht:
Wenn Sie darauf klicken, wird ein Menü mit Optionen zum Anpassen Ihrer Einrückungseinstellungen geöffnet
Convert Indentation to Tabs/Spaces
.Das gleiche Menü ist unter aufgeführt
View -> Indentation
.quelle
Am unteren Rand des Sublime-Fensters sehen Sie etwas, das Ihre Tab / Space-Einstellung darstellt.
Sie erhalten dann eine Dropdown-Liste 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.
quelle
Wie Sie vielleicht bereits wissen, können Sie Ihre Einrückungseinstellungen anpassen
Preferences.sublime-settings
, zum Beispiel in:Dadurch wird Ihr Editor so eingestellt, dass Registerkarten mit einer Breite von 4 Leerzeichen verwendet werden, und das Standardverhalten wird überschrieben, durch das Sublime mit dem Einzug der von Ihnen bearbeiteten Datei übereinstimmt. Wenn Sie die Datei mit diesen Einstellungen erneut einrücken, werden alle Leerzeichen durch Tabulatoren ersetzt.
Das automatische erneute Einrücken beim Öffnen einer Datei ist nicht ganz so einfach (aber wahrscheinlich keine gute Idee, da Änderungen an Leerzeichen die Dateiunterschiede zerstören). Was könnte eine bessere Vorgehensweise sein: Sie können eine Verknüpfung für die erneute Einrückung zuordnen und diese einfach auslösen, wenn Sie eine neue Datei öffnen, die repariert werden muss.
quelle
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 "Einzug" ein und wählen Sie
"Indentation: Convert to Tabs"
quelle
In meinem Fall hat diese Zeile das Problem gelöst:
quelle
Hier ist eine Lösung, die beim Öffnen einer Datei automatisch in Registerkarten konvertiert wird.
Erstellen Sie diese Datei:
.../Packages/User/on_file_load.py
:HINWEIS. Dies führt dazu, dass sich die Datei nach dem Öffnen in einem nicht gespeicherten Zustand befindet, auch wenn keine tatsächliche Konvertierung von Speicherplatz in Tabulator stattgefunden hat. Vielleicht können einige bei der Behebung dieses Problems helfen.
quelle
.../Packages/User/on_file_load.py
.php
on_load
statton_load_async
.Fügen Sie das folgende Python-Skript zu einem neu erstellten Unterordner mit dem Namen "UnexpandTabsOnSave" in "$ SUBLIME_HOME $ \ Packages \" hinzu, um Leerzeichen beim Speichern automatisch in Registerkarten zu konvertieren :
Vielen Dank für die erste Ressource.
quelle
Sie können Tabulatoren durch Leerzeichen in allen Projektdateien ersetzen durch:
Ctrl+Shif+F
^\A(.*)$
Your dir
Ersetzt durch
\1
Dadurch werden alle Projektdateien geöffnet, deren Puffer als verschmutzt markiert ist. Mit dieser Option können Sie jetzt optional diese nächsten Sublime Text-Einstellungen aktivieren, um alle Dateien nach dem Leerzeichen zu kürzen und am Ende jeder Datei eine neue Zeile zu erstellen.
Sie können diese Einstellungen aktivieren, indem Sie im Menü
Preferences -> Settings
diese Inhalte zu Ihrer Einstellungsdatei hinzufügen:"ensure_newline_at_eof_on_save": true,
"trim_trailing_white_space_on_save": true,
View -> Show Console (Ctrl+`)
und den folgenden Befehl ausführen:import threading; threading.Thread( args=(set(),), target=lambda counterset: [ (view.run_command( "expand_tabs", {"set_translate_tabs": True} ), print( "Processing {:>5} view of {:>5}, view id {} {}".format( len( counterset ) + 1, len( window.views() ), view.id(), ( "Finished converting!" if len( counterset ) > len( window.views() ) - 2 else "" ) ) ), counterset.add( len( counterset ) ) ) for view in window.views() ] ).start()
File -> Save All
quelle
Wenn Sie einen Mac haben, verwenden Sie einfach die Hilfeoption (normalerweise die letzte Option in der Menüleiste des Mac). Geben Sie dann "Tabulatoreinzug" ein und wählen Sie eine Breite für den Tabulatoreinzug
Im Allgemeinen können Sie jedoch diesem Pfad folgen: Ansicht -> Einrückung
quelle
Verwenden Sie den folgenden Befehl, um das Problem zu lösen:
quelle
So geht's beim Speichern automatisch: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
Leider funktioniert das Paket nicht, wenn Sie es über den Paketmanager installieren.
quelle