Ich meinte Kopieren und Einfügen von Zeile 4 bis Zeile 12.
Lazer
Bearbeitet Wolltest du das?
Umang
2
Andere haben bereits die direkteste Methode erwähnt, um dies zu tun :4y, aber ich möchte zwei Anmerkungen hinzufügen, die nützlich sein können:
Eins, wenn Sie in geben :help rangeSie alle lernen über Bereiche mit Ex - Stil Befehle anzuwenden. In vielen Fällen sehr nützlich und weitaus vielseitiger als die Verwendung von Zeilennummern. Wenn Sie beispielsweise die erste Zeile nach dem Beginn des Dokuments mit "yank" beginnen möchten (auch wenn sie sich in der ersten Zeile befindet), verwenden Sie :0/^yank/y. Der mächtigste Teil von Bereichen ist die Fähigkeit, sie zu kombinieren, z. B. :./^Chapter/+50?Pete?dbedeutet "Finde die nächste Zeile, die mit dem Wort Kapitel beginnt (suche vorwärts von der aktuellen Zeile), springe dann 50 Zeilen vorwärts und suche rückwärts nach dem Wort Pete." und löschen Sie die erste Zeile, in der Sie sie finden. " Abgesehen davon, dass es den Cursor nicht bewegt, TUT es nur, was Sie ihm sagen.
(Ich habe diese Art der Bereichsspezifikation verwendet, um die Erstellung von fummeligen Dokumentationen zu automatisieren, indem ich nach dem Funktionsnamen unter dem Cursor gesucht habe, dann nach der nächsten Zeile gesucht habe, in der "Description" steht, und sie in ein bestimmtes Register gezogen habe ... usw.)
Der andere Tipp ist, dass Sie über das Springen Bescheid wissen sollten. Geben Sie :help jump-motionsdarüber erfahren voll, aber so , wie es hier bezieht , ist , dass Sie springen 4 Zeile, zerren sie und dann RETURN mit 4Gyy''(oder verwenden Sie Backticks anstelle von Apostrophe exakt auf Ihre Ausgangsposition zurück zu springen, anstatt nur die gleiche Linie Du hast angefangen um.)
Antworten:
Befindet sich der Cursor bereits in Zeile 12, so ist dies ein einfacher
tut es für mich.
quelle
x
? Wenn ich es versuche,:4x
bekomme ichE140: Use ! to write partial buffer
. Vielen Dank!:4d
Wie wäre es damit: Der Cursor befindet sich in Zeile 11, Sie befinden sich im "vi" -Modus.
Du kannst es anscheinend auch mit einem Muster machen:
Sie können "mo" (Verschieben) anstelle von "co" (Kopieren) verwenden, um die Linie nur zu verschieben, anstatt zu reißen und zu setzen.
quelle
:4t.
Versuche dies:
quelle
Versuchen:
Sie können ein Argument von verwenden,
0
um es in eine Zeile einzufügen1
. Dies funktioniert auch mit Bereichen:werden Zeilen kopieren
m
durchn
die Liniek+1
. Außerdem spielt es keine Rolle, wo Sie sich im Puffer befinden. Dermove
Befehlm
funktioniert ähnlich.quelle
Dies sollte es tun:
quelle
Andere haben bereits die direkteste Methode erwähnt, um dies zu tun
:4y
, aber ich möchte zwei Anmerkungen hinzufügen, die nützlich sein können:Eins, wenn Sie in geben
:help range
Sie alle lernen über Bereiche mit Ex - Stil Befehle anzuwenden. In vielen Fällen sehr nützlich und weitaus vielseitiger als die Verwendung von Zeilennummern. Wenn Sie beispielsweise die erste Zeile nach dem Beginn des Dokuments mit "yank" beginnen möchten (auch wenn sie sich in der ersten Zeile befindet), verwenden Sie:0/^yank/y
. Der mächtigste Teil von Bereichen ist die Fähigkeit, sie zu kombinieren, z. B.:./^Chapter/+50?Pete?d
bedeutet "Finde die nächste Zeile, die mit dem Wort Kapitel beginnt (suche vorwärts von der aktuellen Zeile), springe dann 50 Zeilen vorwärts und suche rückwärts nach dem Wort Pete." und löschen Sie die erste Zeile, in der Sie sie finden. " Abgesehen davon, dass es den Cursor nicht bewegt, TUT es nur, was Sie ihm sagen.(Ich habe diese Art der Bereichsspezifikation verwendet, um die Erstellung von fummeligen Dokumentationen zu automatisieren, indem ich nach dem Funktionsnamen unter dem Cursor gesucht habe, dann nach der nächsten Zeile gesucht habe, in der "Description" steht, und sie in ein bestimmtes Register gezogen habe ... usw.)
Der andere Tipp ist, dass Sie über das Springen Bescheid wissen sollten. Geben Sie
:help jump-motions
darüber erfahren voll, aber so , wie es hier bezieht , ist , dass Sie springen 4 Zeile, zerren sie und dann RETURN mit4Gyy''
(oder verwenden Sie Backticks anstelle von Apostrophe exakt auf Ihre Ausgangsposition zurück zu springen, anstatt nur die gleiche Linie Du hast angefangen um.)quelle
Kürzeste:
:1t.
kopiert die erste Zeile unter die aktuelle.Mit Bereichen:
:1,4t.
Kopiert Zeile 1 bis 4 (einschließlich) unter den aktuellen.Auch mit relativen Zeilennummern möglich:
:-1t.
kopiert die vorherige Zeile unter die aktuelle.In Ihrem Beispiel
:4t-1
würde die vierte Zeile unter der gewünschten Zeile kopiert.Hinweis:
:t
ist ein Synonym für den:co[py]
Befehl.quelle