1968 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.

213 Stimmen

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

10 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.

3279voto

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

152 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

30 Stimmen

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

54 Stimmen

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

490voto

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

2 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.

332voto

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

299voto

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

41 Stimmen

Was haben Sie für das Gif verwendet?

11 Stimmen

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

63voto

pjz Punkte 39845

yy

löscht die aktuelle Zeile, ohne sie zu löschen

dd

löscht die aktuelle Zeile

p

wird put eine Zeile, die mit einer der vorgenannten Methoden erfasst wurde

4 Stimmen

Diese wurde zuerst eingereicht, aber ihr Duplikat wird akzeptiert: stackoverflow.com/a/73357/1438029

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