webentwicklung-frage-antwort-db.com.de

Erhabener Text 2: Nachgestellte Leerzeichen nach Bedarf zuschneiden

Ich weiß, dass Sublime Text 2 beim Speichern den nachgestellten Leerraum in Dateien löschen kann.

Wenn Sie in einem Team arbeiten und eine Änderung an einer Datei vornehmen, kann dies zu großen Unterschieden führen, die die Überprüfung von Peer-Code umständlicher machen. Aus diesem Grund ziehe ich es vor, die Leerraumbereinigung nur durchzuführen, wenn ich ohnehin große Änderungen an einer Datei vornehme und das Leerzeichen für die geringfügigen Änderungen belasse.

Ich würde gerne wissen, ob es irgendeinen Befehl zum Ausführen des Zuschneidens des Leerraums gibt auf Anfrage für eine andere Datei als "Activate trimming on save > Save file > Deactivate trimming".

Die Suche in der Dokumentation und im Stackoverflow hat nichts Relevantes ergeben, alle Links scheinen über das automatische Trimmen beim Speichern zu sprechen.

91
José Luis

Achtung: Verwenden Sie dieses Plugin macht Sublime Text deutlich langsamer

Ich benutze dafür das TrailingSpaces Plugin.

Markieren Sie nachfolgende Leerzeichen und löschen Sie sie blitzschnell.

ST2 bietet eine Möglichkeit, nachträgliche Leerzeichen beim Speichern von Dateien automatisch zu löschen. Abhängig von Ihren Einstellungen kann es praktischer sein, sie nur hervorzuheben und/oder von Hand zu löschen. Dieses Plugin bietet genau das!

Verwendung: Klicken Sie auf "Edit/Trailing Spaces/Delete".

Um eine Schlüsselbindung hinzuzufügen, öffnen Sie "Einstellungen/Schlüsselbindungen - Benutzer" und fügen Sie Folgendes hinzu:

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }
69
Sridhar Katakam

Ich verwende diese Schritte für eine schnelle On-Demand-Lösung innerhalb von Sublime Text:

  1. Suchen> Ersetzen ...
  2. Finde was: [ \t]+\n
  3. Ersetzen mit: \n
  4. Alle ersetzen

Sie können dies auch für eine große Anzahl von Dateien über tun

  1. Suchen> In Dateien suchen ...
  2. Finden: [ \t]+\n
  3. Woher:
  4. Ersetzen Sie: \n
  5. Ersetzen
61
Jason Favors

Sie können einfach einen regulären Ausdruck verwenden, um nachfolgende Leerzeichen zu entfernen:

  1. Suchen> Ersetzen ...
  2. Finde was: [^\S\r\n]+$
  3. Ersetzen durch: leer lassen.
  4. Klicken Sie auf "Alle ersetzen".

[^\S\r\n]+$ ist Regex für "mindestens ein Leerzeichen (also Leerzeichen und Tabulatoren, aber keine Zeilenumbrüche mit doppelter Negation), gefolgt vom Zeilenende "

Regulärer Ausdruck muss aktiviert sein: Enable regex is search dialog

23
antou

Hier ist eine supereinfache Methode, die keine Plugins oder Einstellungen verwendet und in den meisten Situationen funktioniert.

  1. Mehrfachauswahl und Bewegen des Cursors an das Ende jeder Zeile
  2. Halten Sie STRG-UMSCHALTTASTE gedrückt und drücken Sie nach links oder rechts
  3. Die Leerzeichen und Tabulatoren am Ende der Zeilen sollten jetzt ausgewählt sein. Drücken Sie Entf oder Rücktaste

    Hinweis - Sonderzeichen wie (und + können an dieser Stelle auch am Ende der Zeile ausgewählt werden, nicht nur Leerzeichen.

So wählen Sie alle Zeilen mehrfach aus:

Eine Möglichkeit besteht darin, die mittlere Maustaste zum vertikalen Auswählen zu verwenden und dann die Ende-Taste zu drücken, wenn es sich um eine kleine Auswahl handelt.

Mit Hotkeys:

  1. STRG-A (alle auswählen)
  2. STRG-UMSCHALT-L (Cursor auf alle markierten Zeilen setzen)
  3. END (zum Zeilenende)

Sie können auch die Suchfunktion verwenden, um nach etwas zu suchen, das in jeder Zeile steht, z. B. nach dem Leerzeichen:

  1. \ s (unter Verwendung von Regex)
  2. Klicken Sie auf Alle suchen
  3. Drücken Sie die Taste "Ende", um am Ende jeder Zeile mehrere Cursor zu erhalten

Beispieltext:

text and number     44  more text and a space  
text and number 44  more text and 2 tabs        
text and number 44  more text and no space or tab

text and number 44  more text after a line feed
20
shanemgrey

Ich habe hier eine Lösung gefunden: http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

Sie können das Paket ändern

trim_trailing_white_space.py

befindet sich im Standard-Paketverzeichnis wie folgt:

import sublime, sublime_plugin

def trim_trailing_white_space(view):
    trailing_white_space = view.find_all("[\t ]+$")
    trailing_white_space.reverse()
    edit = view.begin_edit()
    for r in trailing_white_space:
        view.erase(edit, r)
    view.end_edit(edit)

class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        trim_trailing_white_space(self.view)

class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("trim_trailing_white_space_on_save") == True:
            trim_trailing_white_space(view)

class EnsureNewlineAtEof(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("ensure_newline_at_eof_on_save") == True:
            if view.size() > 0 and view.substr(view.size() - 1) != '\n':
                edit = view.begin_edit()
                view.insert(edit, view.size(), "\n")
                view.end_edit(edit)

Jetzt können Sie den Befehl zu Ihrer Keymap-Konfiguration hinzufügen:

{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }
13