Derzeit habe ich zwei ähnliche Methoden, um den gesamten Puffer durch einen anderen Text zu ersetzen (z. B. in der Zwischenablage).
Methode 1:
Alle Zeilen löschen :
:%d
.Text einfügen: "+P(oder ähnlich :)
:put+
.
Methode 2:
Wählen Sie alle Zeilen visuell aus : ggVG.
Text einfügen : "+P.
Ich konnte jedoch keinen Ein-Befehl-Feuer-Weg finden, um das zu tun. Das naheliegendste, das ich gefunden habe, ist das :change
Kommando. Aber es scheint nicht gut mit Registern zu funktionieren. Natürlich kann ich dafür eine Funktion erstellen und / oder einen Schlüssel zuordnen. Bevor ich jedoch all diese Anpassungen vornehmen kann, möchte ich Folgendes sicherstellen:
Gibt es einen eingebauten Befehl, um einen Zeilenbereich durch einen anderen Text zu ersetzen? Wie könnten Sie
:%replace+
den gesamten Puffer durch Text in der Zwischenablage ersetzen?
quelle
1,$s/\_./\=@+
ist keine Lösung: P:%d|put+
ist näher, aber nicht ganz da.1,$s/\_.*/\=@+
, das\_.
mit jedem Zeichen einschließlich Zeilenumbruch übereinstimmt.:%d|put+
passt. Es ist kurz und unvergesslich. Der andere Befehl ist einfach zu geheimnisvoll, um sich zu erinnern und richtig zu tippen.Antworten:
Sie können
ggvG<CTRL-G>
den gesamten Puffer visuell auswählen und eingebenSelect-mode
. Dies ist der einfachste Weg, den Puffer durch Text zu ersetzen, den Sie eingeben möchten. Möglicherweise können Sie sogar einSelect-mode
Mapping erstellen, um:smap
Ihr Problem zu lösen.quelle
Eine Möglichkeit, den gesamten Puffer durch Ihre Zwischenablage zu ersetzen, kann ein externer Befehl sein, zum Beispiel:
Siehe auch: Mac OS X-Zwischenablagefreigabe
Oder durch Substitution:
Alternativ verwenden
:%d|put+
(wie bereits in den Kommentaren vorgeschlagen).quelle