it-swarm.com.de

Erhöhen Sie Text 3, konvertieren Sie Leerzeichen in Registerkarten

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
}
147
chris

In der rechten unteren Ecke des Textfensters "Sublime Text" sehen Sie einen Einrückungsindikator, der wie folgt aussieht:

Indentation options menu

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.

287
angerson

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:

  • Einrückung in Leerzeichen konvertieren
  • Einrückung in Registerkarten konvertieren

Wenden Sie die gewünschte Einstellung auf das gesamte Dokument an.

Hoffe das hilft.

112
erier

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.

67
justin

In meinem Fall löste diese Zeile mein Problem:

"translate_tabs_to_spaces": false
3
vljs

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"

2
Jojoleo

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.

2
TheStoryCoder

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.

0
sean2078