Wie füge ich Text am Ende jeder Zeile ein? Erhaben 2


159

Ich bin gespannt, ob es in Sublime 2 eine Möglichkeit gibt, Text am Ende jeder Zeile einzufügen. Und umgekehrt zum Anfang jeder Zeile.

Testlinie eins

Testlinie zwei

Testlinie drei

Testlinie vier

...

Angenommen, Sie haben 100 Textzeilen im Editor und möchten Anführungszeichen am Anfang und Ende jeder Zeile einfügen.

Gibt es eine einfache Möglichkeit, dies zu tun, oder ein Plugin, das jeder kennen würde? Dies sparte mir oft viel Zeit bei verschiedenen Projekten.

Vielen Dank.


4
Derzeit ist dies die zweite Demo auf der Homepage ... sublimetext.com
TWiStErRob

Antworten:


28

Sie können die Such- und Ersetzungsfunktion mit dieser Regex verwenden ^([\w\d\_\.\s\-]*)$, um Text zu finden, und der ersetzte Text ist "$1".


7
Genial! Daher habe ich festgestellt, dass Folgendes für mich funktioniert: Wenn Sie Regex verwenden: (?> \ X0D \ x0A? | [\ X0A- \ x0C \ x85 \ x {2028} \ x {2029}]) wird das Ende jeder Zeile gefunden. Bei Verwendung von Regex: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] wird der Anfang jeder Zeile gefunden (vorausgesetzt, alle Zeichen werden hinzugefügt, damit der Regex jeweils am Anfang sucht der Zeilen). Danke @yohann!
Tony H.

5
Wenn Sie dies mit einem regulären Ausdruck in einem leistungsstarken Editor wie Vim oder ST2 tun, fehlt Ihnen der Hinweis. Warum einen anständigen Redakteur herabsetzen sed?
sehe

Vielen Dank, dass Sie 3 Stunden meines Lebens
gerettet

571

Ja, Regex ist cool, aber es gibt andere Alternativen.

  • Wählen Sie alle Zeilen aus, denen Sie ein Präfix oder Suffix hinzufügen möchten
  • Gehe zum Menü Auswahl -> In Zeilen teilen ( Cmd/ Ctrl+ Shift+ L)

Auf diese Weise können Sie mehrere Zeilen gleichzeitig bearbeiten. Jetzt können Sie am Anfang und am Ende jeder Zeile * Anführungszeichen (") oder etwas * hinzufügen .


36
Das ist so viel einfacher.
Yada

6
Dies ist eine viel bessere Antwort. Sie können auch die Umschalttaste (Windows / Linux) oder die Optionstaste (Mac) verwenden, während Sie mit der Maus eine Region auswählen, um das gleiche Ergebnis zu erzielen.
dbn

5
Möglicherweise bearbeiten Sie häufig mehrere Zeilen wie oben beschrieben, möchten sie dann aber wieder zu einer einzigen Zeile zusammenfügen. Verknüpfung zum Verbinden mehrerer Zeilen: Strg / cmd + J
Fionbio

3
Dies ist eine gute Antwort, aber bei sehr großen Zeilenzahlen kann sie sehr viel CPU-intensiver sein als die Verwendung von Suchen und Ersetzen.
Deckenfisch

2
Ich denke, dies verdient die bevorzugte Antwort
Michael Osofsky

77

Hier ist der Workflow, den ich ständig benutze, nur über die Tastatur

  1. Ctrl/ Cmd+ AAlle auswählen
  2. Ctrl/ Cmd+ Shift+ LIn Zeilen aufteilen
  3. ' Umgeben Sie jede Zeile mit Anführungszeichen

Beachten Sie, dass dies nicht funktioniert, wenn die Auswahl Leerzeilen enthält.


3
funktioniert nicht für mich in st2, Schritt 3 löschte alle Zeilen und ersetzte es durch "der Schritt 3 sollte sein Home" End"
andrej

@andrej - das klingt nach einem Fehler. Stellen Sie sicher, dass Sie die neueste Version von st2 verwenden, und melden Sie in diesem Fall
dbn

1
@dbw läuft sublime Text 2.0.1 Build 2217. Gepostet
andrej

@andrej Ich kann Ihr Problem reproduzieren, wenn ich irgendwelche leeren Zeilen in der Auswahl habe
Patrick McDonald

52
  1. Wählen Sie alle Zeilen aus, in denen Sie ein Präfix oder Suffix hinzufügen möchten. (Wenn Sie jedoch nur bestimmten Zeilen ein Präfix oder Suffix hinzufügen möchten, können Sie ctrl+ verwendenLeft mouse button mehrere Cursor erstellen.)
  2. Drücken Sie Ctrl+ Shift+ L.
  3. Drücken Sie HomeTaste und fügen Präfix.
  4. Drücken Sie EndTaste und fügen Sie Suffix.

Beachten Sie, deaktivieren Sie den Zeilenumbruch, da er sonst nicht ordnungsgemäß funktioniert, wenn Ihre Zeilen länger als die erhabene Breite sind.


2
Dies ist die eigentliche Lösung. Das Haus und die
Phil

In Sublime Text 3 (für Mac) funktionierten die Home- und End-Tasten bei mir nicht. Wenn Sie dieses Problem
avance

Nicht wirklich @Phil. Sie können auch mit Cmd + Links- / Rechtspfeil navigieren. Ich denke, das gleiche wird auch auf Windows funktionieren
Claud H

33

Angenommen, Sie haben folgende Codezeilen:

test line one
test line two
test line three
test line four

Wenn Sie Suchen und Ersetzen Ctrl + Hdurch Regex verwenden , finden Sie Folgendes : ^und ersetzen Sie es durch ", wir haben Folgendes:

"test line one
"test line two
"test line three
"test line four

Jetzt suchen wir das: $und ersetzen es durch ", jetzt haben wir das:

"test line one"
"test line two"
"test line three"
"test line four"

funktionierte wirklich gut in erhabenem Text 3, sparte
jede

22

Verwenden Sie Spaltenauswahl . Die Spaltenauswahl ist eine der einzigartigen Funktionen von Sublime2. Es wird verwendet, um Ihnen mehrere übereinstimmende Cursor zu geben ( Tutorial hier ). Führen Sie einen der folgenden Schritte aus, um mehrere Cursor zu erhalten:

Maus:

  • Halten Sie die Umschalttaste (Windows / Linux) oder die Optionstaste (Mac) gedrückt, während Sie mit der Maus eine Region auswählen.

  • Durch Klicken mit der mittleren Maustaste (oder Scrollen) wird auch eine Spalte ausgewählt.

Tastatur:

  • Wählen Sie die gewünschte Region.
  • Geben Sie control+ shift+ L(Windows / Linux) oder command+ shift+ L(Mac) ein.

Sie haben nun mehr Zeilen ausgewählt, so dass Sie könnte ein Anführungszeichen am Anfang und am Ende jeder Zeile eingeben. Es wäre besser, die Funktionen von Sublime zu nutzen und einfach " einzugeben. Wenn Sie dies tun, zitiert Sublime automatisch den ausgewählten Text.

Geben Sie ein esc, um den Mehrfachcursormodus zu verlassen.


3
Sie können die Spaltenauswahl auch durch Klicken mit der mittleren Maustaste und Ziehen auslösen.
Curtis Gibby

2
Dies ist der spezifischste Weg, um das Problem zu lösen, und verwendet eine grundlegende Funktion von erhabenem Text. Da sich das OP im Titel nach Sublime Text erkundigte, sollte dies die akzeptierte Antwort sein.
Dribbler
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.