So ersetzen Sie ein Wort im normalen Modus durch ein gezerrtes Wort


25

Wenn ich ein Wort durch ein anderes Wort ersetzen muss, das ich zuvor gezerrt habe, verwende ich normalerweise einen Workflow, der mir unnatürlich erscheint:

Angenommen, ich habe diesen Text:

foo bar buzz

Und ich möchte ziehen foound durch bardas ersetzen, was ich vorher gezogen habe.

Nach dem Ruckeln foosehe ich folgende Optionen:

Option 1

  1. Stellen Sie den Cursor barmit aufw

  2. Setzen Sie foovor barmitP

  3. Stellen Sie den Cursor auf das bverbleibende barund löschen Sie das Wort mitde

Option 2

  1. Setzen Sie den Cursor mit auf die Leiste w

  2. Verwendung denach erasebar

  3. Setzen Sie den Inhalt des Registers mit 0 "0P(seit ich gelöscht habe bar, fooist mit einem einfachen nicht mehr erreichbar p)

Beides scheint mir zu kompliziert und ich bin mir sicher, dass es einen effizienteren Weg gibt, um diese Aktion zu erreichen, aber ich kann nicht herausfinden, wie. Diese Idee wäre, die Lösch- und die Einfügeaktion in nur einer zu kombinieren, oder zumindest zu vermeiden, das gelöschte Wort im Ruckregister zu behalten, damit ich das gewünschte Wort mit einem einfachen Satz einfügen kann p.

Auch ich kenne den Ersetzungsmodus, der mit ausgelöst wurde, Raber es erlaubt nicht, das zu setzen, was gerissen wurde.

TL; DR : Wie ersetze ich ein Wort durch den Inhalt des Ameisenregisters?

Antworten:


31

Angenommen, Sie haben bereits foomit yeoder etwas Ähnlichem gezerrt und der Cursor befindet sich irgendwo auf foo, können Sie Folgendes verwenden Wvep:

  • Wzu gehen bar(dies ist natürlich optional und hängt von der aktuellen Cursorposition ab);
  • v um den visuellen Modus zu starten;
  • eans Ende des Wortes gehen (Sie können hier auch andere Bewegungen verwenden, wie iw);
  • pzu kleben foo; Dies ersetzt die aktuelle visuelle Auswahl (die im unbenannten Register abgelegt ist "").


6

Ich habe einen anderen Weg gefunden, es ist ein bisschen ähnlich wie Option 2, aber es hat den Vorteil, den Zustand der Register nicht zu verfälschen.

Die Idee ist, das " Schwarze-Loch-Register " zu verwenden: Dieses Register ist über zugänglich "_und hat die Besonderheit, dass Sie darin schreiben, aber nicht daraus lesen können. Wie ein Schwarzes Loch lässt dieses Register alles, was darin steckt, vollständig verschwinden. Hier können wir es verwenden, damit fooes auch nach dem barLöschen im Yank-Register bleibt .

Mit dieser Lösung wäre der Workflow nach dem Ruckeln foo:

  • Zu gehen barmit W(oder natürlich jedem benötigten Wort)
  • Mit Hilfe der „schwarzen Loch Registern“ löschen barmit"_de
  • Putting fooaus dem Ruckregister mit P. Das Yank-Register enthält noch fooda barging in das Schwarze Loch.

Ich bin mir nicht sicher, ob dies eine bessere Lösung ist als die von @ Carpersmoker ( in Bezug auf Vimgolf @ Carpetsmoker gewinnt ), aber ich wusste nichts über das Black-Hole-Register und dachte, einige könnten daran interessiert sein, es zu wissen.


3
  1. Gehe zum Start von "foo". Drücken Sie yiw. Das reißt das innere Wort.

  2. Gehe zur "Bar" und drücke auf den Buchstaben w. Dann wähle es aus und ziehe zurück:viw"0p

Ich benutze ciwund yiwviel.


4
Die Verwendung von iwTextobjekten wie ist interessant, aber Ihre Lösung ist tatsächlich dieselbe wie die von @ CarpetSmoker: Visuelles Auswählen des zweiten Wortes und Einfügen des ersten. Ich denke auch, dass Ihre Lösung mit einem einfachen pstatt mit einem "0Register funktionieren würde .
statox

1
  • Wenn sich der Cursor irgendwo auf dem Wort befindet,

    • yiw- Ziehen Sie das Wort und speichern Sie es im 0Register.
  • Gehen Sie zu dem Zielwort, das ersetzt werden soll

    • ciw löscht das Wort und versetzt Sie in den Einfügemodus.
    • ctrl-r. Es "erscheint ein Fenster mit der Aufforderung, das Register aufzurufen.
    • 0 wird das zerrissene Wort einfügen.

Gespeicherte Wörter werden (normalerweise!) Im 0Register gespeichert . Siehe :registers, um die gespeicherten Puffer anzuzeigen. Dies scheint eine langwierige Prozedur zu sein, meiner Meinung nach öffnet dies die Tür zu den viel raffinierteren Registertricks.

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.