Wie schneide ich eine ganze Linie in vim und füge sie ein?


198

Ich weiß, wie man den vBefehl in vim verwendet, aber ich brauche etwas, das eine ganze Zeile löscht und es mir ermöglichen sollte, dieselbe Zeile an einer anderen Stelle einzufügen.

Antworten:


84

Durch Drücken von Shift+ wird vdie gesamte Zeile ausgewählt und durch Drücken von dgelöscht.

Sie können auch verwenden dd, was nicht erfordert, dass Sie in den visuellen Modus wechseln.


38
Oder Sie können vv oder dd drücken, die gleichwertig sind, ohne dass der störende visuelle Modus aktiviert wird.
jaked122

13
ddeinfacher als shift + v->d
Kolob Canyon

1
Was ist mit Rückgängig machen ... Ich probiere meine Dokumente an und kann sie nicht rückgängig machen.
Abhishek saharn

19
Was ist mit Paste?
Becko

1
Normalerweise lasse ich keine Kommentare fallen, aber die Tatsache, dass dieser Typ nicht sagte, wie man einfügt, und trotzdem die akzeptierte Antwort erhielt, machte meinen Tag
Cristian E.

421

ddIm Befehlsmodus (nach Drücken von Escape) wird die Zeile abgeschnitten, pim Befehlsmodus wird eingefügt.

Aktualisieren:

Für einen Bonus dund dann schneidet eine Bewegung das Äquivalent dieser Bewegung, dwschneidet also ein Wort, d<down-arrow>schneidet diese Zeile und die Zeile darunter d50wschneidet 50 Wörter.

yyist Kopierzeile und funktioniert wie dd.

D schneidet vom Cursor zum Zeilenende.

Wenn Sie v(visueller Modus) verwendet haben, sollten Sie versuchen V(visueller Linienmodus) und <ctrl>v(visueller Blockmodus).


13
Gute Antwort. Ich würde hinzufügen, Pum die Zeile vor dem Cursor im Befehlsmodus einzufügen. Und <Ctrl-R>"um die Zeile im Einfügemodus einzufügen.
Birei

13
Und ]pmit korrektem Einzug einfügen. Aber wir sollten aufpassen, dass wir nicht das gesamte Vim-Handbuch hier veröffentlichen :).
DaedalusFall

16

Es gibt verschiedene Möglichkeiten, eine Linie zu schneiden, die alle dim normalen Modus über die Taste gesteuert werden . Wenn Sie den visuellen Modus (die vTaste) verwenden, können Sie die Taste einfach ddrücken, sobald Sie den Bereich markiert haben, den Sie schneiden möchten. Gehen Sie zu dem Ort, den Sie einfügen möchten, und pdrücken Sie die Taste zum Einfügen.

Erwähnenswert ist auch, dass Sie aus Registern kopieren / ausschneiden / einfügen können. Angenommen, Sie sind sich nicht sicher, wann oder wo Sie den Text einfügen möchten. Sie können den Text in bis zu 24 Registern speichern, die durch einen alphabetischen Buchstaben gekennzeichnet sind. Stellen Sie Ihrem Befehl 'einfach (einfaches Anführungszeichen) und den Registerbuchstaben (a bis z) voran. Sie können beispielsweise den visuellen Modus ( vTaste) verwenden, um Text auszuwählen, und dann eingeben 'ad, um den Text auszuschneiden und im Register 'a' zu speichern. Sobald Sie zu der Stelle navigiert haben, an der Sie den Text einfügen möchten, geben Sie ihn ein, 'apum den Inhalt von Register a einzufügen.


14

Aktuelle Zeile löschen und in Zwischenablage kopieren:

d + d

Fügen Sie den Inhalt Ihrer Zwischenablage ein :

(Halten) Shift+P


12

Angenommen, Sie wollten die Linie ausschneiden bbbund unter die Linie einfügen---

Vor:

aaa
bbb
---

Nach dem:

aaa
---
bbb
  1. Setzen Sie Ihren Cursor auf die Linie bbb
  2. Drücken Sie d+d
  3. Setzen Sie Ihren Cursor auf die Linie ---
  4. Drücken Sie p

Geben Sie hier die Bildbeschreibung ein


11
  1. Drücken Sie im normalen Modus 'V', um die gesamte Zeile auszuwählen
  2. Drücken Sie dann 'y', um es zu kopieren
  3. Gehen Sie zu der Stelle, an der Sie es einfügen möchten, und drücken Sie 'p', um nach dem Cursor einzufügen, oder 'P', um es einzufügen.


7

Der schnellste Weg, den ich gefunden habe, ist der Bearbeitungsmodus:

  1. Drücken Sie, yyum die Zeile zu kopieren.
  2. Dann ddlöschen Sie die Zeile.
  3. Dann, pum die Linie einzufügen.

4

Nur drei Schritte.

  1. Wechseln Sie im Befehlsmodus zur Startposition des zu kopierenden Texts und drücken Siev
  2. Gehen Sie zur Endposition des Textes und drücken Sied
  3. Gehen Sie zu der Stelle, die Sie einfügen möchten , und drücken Siep
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.