Im vi / vim-Editor muss ich einen Block kopieren. Es gibt viele Wege, aber einer ist sehr schnell.
beschriften Sie die erste Zeile auf irgendeine Weise,
Beschriften Sie dann die Endzeile auf irgendeine Weise.
Geben Sie dann einen Befehl ein, um die beschrifteten Zeilen zu kopieren.
dann kopieren, möglicherweise mit 'p', aber nicht sicher.
Kennt jemand die Befehle (nicht JJ oder 10JJ)? Danke im Voraus.
vim
copy-paste
vi
Yang
quelle
quelle
:'a,'by a
.Verwenden Sie einfach V, um Zeilen oder vZeichen auszuwählen oder Ctrlvum einen Block auszuwählen.
Wenn sich die Auswahl über den Bereich erstreckt, den Sie kopieren möchten, drücken Sie einfach yund pfügen Sie sie ein, um sie an einer beliebigen Stelle einzufügen ...
quelle
Ctrl+v
Pastig aus der Zwischenablage angezeigt wird, solltenCtrl+q
Sie einen Block auswählenv
oderV
p
Ihre Dokumentation sagt:
Ausschneiden und Einfügen:
Das Kopieren und Einfügen erfolgt mit denselben Schritten, mit Ausnahme von Schritt 4, in dem Sie y anstelle von d drücken würden:
d=
delete
=cut
y=
yank
=copy
quelle
Es hört sich so an, als ob Sie Markierungen in die Datei einfügen möchten .
mxPlatziert eine Markierung mit dem Namen x unter dem Cursor
y'xzieht alles zwischen der aktuellen Position des Cursors und der Zeile mit der Markierung x .
Sie können 'xden Cursor einfach auf die Linie mit Ihrer Markierung bewegen.
Sie können `x(ein Back-Tick) verwenden, um zur genauen Position der Marke zu gelangen.
Eine Sache, die ich die ganze Zeit mache, ist, alles zwischen den Cursor zu ziehen und x in die Zwischenablage zu markieren .
Sie können das so machen:
"+y'x
HINWEIS: In einigen Umgebungen wird der Zwischenablagepuffer durch a
*
anstelle von a dargestellt+
.Ähnliche Fragen mit einigen guten Antworten:
Kopieren / Einfügen von Text aus vi in verschiedene Anwendungen
Wie füge ich aus dem Puffer im Ex-Modus von vim ein?
quelle
V
in meinen Workflow einzuführen . Ich bin mir nicht sicher, warum ich es nicht benutze ...Ich fand den folgenden Befehl viel bequemer. Wenn Sie Zeilen von 6 bis 12 kopieren und von der aktuellen Cursorposition aus einfügen möchten.
Wenn Sie Zeilen von 6 bis 12 kopieren und von der 100. Zeile einfügen möchten.
Quelle: https://www.reddit.com/r/vim/comments/8i6vbd/efficient_ways_of_copying_few_lines/
quelle
Tastaturkürzel dazu sind:
Zum Kopieren: Setzen Sie den Cursor auf den Blockanfang und drücken Sie md . Gehen Sie dann zum Ende des Blocks und drücken Sie y'd . Dadurch wird der Block zum Einfügen ausgewählt. Drücken Sie p
Zum Schneiden: Setzen Sie den Cursor auf den Blockanfang und drücken Sie ma. Gehen Sie dann zum Ende des Blocks und drücken Sie d'a . Dadurch wird der Block zum Einfügen ausgewählt. Drücken Sie p
quelle
Sie können dies wie in vi tun, um beispielsweise Zeilen von 3020 bis zum Ende zu ziehen. Führen Sie diesen Befehl aus (schreiben Sie den Block in eine Datei):
: 3020, $ w / tmp / yank
Und um diesen Block in eine andere Zeile / Datei zu schreiben, gehen Sie zur gewünschten Position und führen Sie den nächsten Befehl aus (fügen Sie die zuvor geschriebene Datei ein):
: r / tmp / yank
(Erinnerung: Vergessen Sie nicht, die Datei zu entfernen: / tmp / yank)
quelle