Wie kann ich mehrere Zeilen in ein Register ziehen?


44

Ich möchte in vim mehrere Zeilen in ein einziges Register ziehen, um auf einfache Weise verschiedene Textvorlagen in ein Dokument einzufügen.

Beispiel: "iyy ruckelt nur die aktuelle Zeile, wenn ich versuche, im visuellen Modus mehrere Zeilen auszuwählen, wird sie nicht in das Register geschrieben.

Irgendwelche Vorschläge?


"Wenn ich versuche, mehrere Zeilen im visuellen Modus auszuwählen, wird dies nicht in das Register geschrieben." <- Wirklich? Funktioniert für mich ...
Billy ONeal

und für mich auch ...
ulidtko

ah ok, ich habe es mit "iyv, albern mich. sollte Vjjj sein" wie ulidtko erwähnt.
Ryz

Antworten:


59

Verwenden Sie 3Y, um 3 Zeilen in das Standardregister zu ziehen. "i3Yfür das Einreißen in Register i.

Außerdem zähle ich am liebsten nicht die Zeilen, die ich ziehen möchte, sondern wähle sie im visuellen Modus mit Vund bewege Befehle aus und ydrücke dann, um sie zu ziehen oder "_yin ein Register zu ziehen.

Außerdem habe ich gerade versucht, mehrere Zeilen im visuellen Zeilenmodus auszuwählen und in ein nicht standardmäßiges Register zu ziehen, z. B. Vjjj"oy-, und es funktioniert.


1
+1 - ist aber VVisual Line Mode, vist Visual Mode.
Billy ONeal

ok, ok, richtig. Visueller Linienmodus. %)
Ulidtko

1
gerne angenommen, schnellste weg für mich noch.
Ryz

24

Überall in der Datei können Sie Folgendes verwenden.

:2,5y a

Reißleinen 2 - 5. IN REGISTER a

:7pu a

Einfügen, Register a unter Zeile 7.


1
Die Frage lautete: „Wie kann ich mehrere Zeilen in ein Register ziehen ?“ Zeigen Sie, wie diese Befehle mit Registern funktionieren.
Scott

Ich hoffe, meine Bearbeitung erfüllt Ihre Anfrage.
Alock27

Entschuldige Nein. Die Frage erwähnte explizit wiederholt "register", bezog sich auf "leichtes Einfügen verschiedener Textvorlagen" und gab ein Beispiel unter Verwendung eines nicht standardmäßigen Registers.
Scott

3
@ Scott Ich entschuldige mich. Warum hast du nicht einfach gesagt: "Alter, überprüfe deine Methode mit: reg. Du wirst sehen, dass es nicht funktioniert." Und ich hätte alle gesagt: "Whoa, mein Böser".
alock27

1
War auf der Suche nach einer Möglichkeit, die who-Datei in register + zu ziehen, um sie in die System-Zwischenablage zu kopieren. :% y + hat den Trick gemacht, danke.
AlexMA

10

Verwenden Sie m, um den Start mit einem Puffernamen zu markieren (so dass Sie möglicherweise eingeben mx). Bewegen Sie den Cursor nach unten zu der Stelle, an der Sie den Kopiervorgang beenden möchten, und geben Sie ein y'x(oder d'xwenn Sie ausschneiden und einfügen). Bewegen Sie dann den Cursor an die Stelle, an der Sie einfügen möchten, und geben Sie Folgendes ein p.

Das Spickzettel für den Vim-Befehl


Sind Sie sicher , dass Sie bedeuten nicht , vnicht m?
Billy ONeal

@BillyONeal 'v' startet den visuellen Modus und ermöglicht es Ihnen, dasselbe zu tun. 'M' wird zum "Markieren" einer Region verwendet.
Nifle

6

Sie stellen dem Befehl eine Zahl voran, um die Anzahl der zu bearbeitenden Zeilen zu ermitteln. Sie könnten auch ein 'Text-Objekt' (wie ']' für Block und ')' für Absatz) verwenden - dies würde kontextabhängig für mehrere Zeilen funktionieren - die Standardeinstellung ist häufig eine einzelne Zeile. Zum Beispiel "r5yywürden Sie fünf Zeilen beginnend mit dem Cursor in das Register 'r' ziehen. (Oder Sie können :.,+4y rim Ex-Modus das Gleiche eingeben.) Sie können Zahlen auch mit Textobjekten kombinieren. "r10y).


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.