2070 Stimmen

Wie dupliziere ich eine ganze Zeile in Vim?

Wie dupliziere ich eine ganze Zeile in Vim in ähnlicher Weise wie Ctrl + D in IntelliJ IDEA/ Resharper oder Ctrl + Alt + / sur Eclipse ?

61 Stimmen

Wird Vimtutor nicht mehr benutzt? Dies ist wahrscheinlich innerhalb der ersten fünf Minuten des Lernens, wie man Vim benutzt.

248 Stimmen

Würden Sie diese Zeile gerne vervielfältigen? Y es P Pacht. :)

12 Stimmen

FWIW ich habe vimtutor etwa ein Dutzend Mal in den letzten 2 Monaten gemacht und dieses Konzept ist nicht abgedeckt. Er sagt, wie man "dd" und "v - navigieren - y" gefolgt von "p" macht. Es wird nicht erklärt, wie man eine einzelne Zeile kopiert, ohne sie zu löschen, wie es hier gefragt wird.

3420voto

Mark Biek Punkte 140395

yy o Y um die Zeile zu kopieren (Mnemonik: y ank )
o
dd a d wählen Sie die Zeile (Vim kopiert das, was Sie gelöscht haben, in ein Zwischenablage-ähnliches "Register", wie ein schneiden Betrieb)

dann

p a p aste den kopierten oder gelöschten Text nach die aktuelle Zeile
o
P a p aste den kopierten oder gelöschten Text vor die aktuelle Zeile

162 Stimmen

Ein ausgezeichnetes Argument. Aus irgendeinem Grund finde ich jedoch, dass das zweimalige Drücken von y für mich schneller ist als SHIFT-y

31 Stimmen

@camflan Ich denke, das Y sollte "vom Cursor bis zum Ende kopieren" lauten.

59 Stimmen

Und 2yy können verwendet werden, um 2 Zeilen zu kopieren (und für jedes andere n)

505voto

Benoit Punkte 72929

Normaler Modus: siehe andere Antworten.

El Ex Weise:

  • :t. wird die Zeile dupliziert,
  • :t 7 kopiert sie nach Zeile 7,
  • :,+t0 kopiert die aktuelle und die nächste Zeile am Anfang der Datei ( ,+ ist ein Synonym für den Bereich .,.+1 ),
  • :1,t$ kopiert Zeilen vom Anfang bis zur Cursorposition bis zum Ende ( 1, ist ein Synonym für den Bereich 1,. ).

Wenn Sie verschieben müssen, anstatt zu kopieren, verwenden Sie :m 代わりに :t .

Dies kann sehr wirkungsvoll sein, wenn man es kombiniert mit :g o :v :

  • :v/foo/m$ verschiebt alle Zeilen, die nicht dem Muster "foo" entsprechen, an das Ende der Datei.
  • :+,$g/^\s*class\s\+\i\+/t. kopiert alle nachfolgenden Zeilen der Form class xxx direkt nach dem Cursor.

Referenz: :help range , :help :t , :help :g , :help :m y :help :v

0 Stimmen

Wissen Sie, ob es eine Möglichkeit gibt, dies im visuellen Modus zu tun? Eines meiner häufigsten Verwendungsmuster ist z.B. Visual Select 3 Zeilen + :d oder :y

3 Stimmen

Wenn Sie die Taste : im visuellen Modus wird sie umgewandelt in '<,'> damit der Zeilenbereich, über den sich die visuelle Auswahl erstreckt, vorausgewählt wird. Also, im visuellen Modus, :t0 kopiert die Zeilen am Anfang.

2 Stimmen

Zur Erinnerung: Wenn Sie einen Doppelpunkt (:) eingeben, gelangen Sie in den Befehlszeilenmodus, in dem Sie Ex-Befehle eingeben können. vimdoc.sourceforge.net/htmldoc/cmdline.html Ex-Befehle können sehr mächtig und prägnant sein. Die yyp-Lösungen sind "Normalmodus"-Befehle. Wenn Sie eine weit entfernte Zeile oder einen Bereich von Zeilen kopieren/verschieben/löschen wollen, kann ein Ex-Befehl viel schneller sein.

341voto

Linulin Punkte 3877

YP o Yp o yyp .

0 Stimmen

Y wird in der Regel umgewandelt in y$ (yank (copy) bis zum Ende der Zeile (von der aktuellen Cursorposition aus, nicht vom Anfang der Zeile)) aber. Mit dieser Zeile in .vimrc : :nnoremap Y y$

2 Stimmen

Vergessen Sie nicht die arme alte yyP

313voto

Adam Punkte 3079

copy and paste in vim

Einfacher geht's nicht! Vom normalen Modus aus:

yy

gehen Sie dann zu der Zeile, an der Sie einfügen möchten, und

p

46 Stimmen

Was haben Sie für das Gif verwendet?

15 Stimmen

@Zoltán Sie können LiceCap verwenden, das eine kleine Größe hat.

72voto

Eric Z Beard Punkte 36325

Tun Sie dies:

Erstens, yy um die aktuelle Zeile zu kopieren, und dann p zum Einfügen.

1 Stimmen

Ja, wenn der Cursor am Ende der Zeile steht und Sie das Leerzeichen wie gezeigt eingeben, wird die Zeile, die Sie herausgenommen haben, 2 Zeilen darunter dupliziert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X