Frage

Wie kann ich duplizieren eine ganze Zeile in Vim in ähnlicher Weise wie Strg + D in IntelliJ IDEA / ReSharper oder Strg + < kbd> Alt + / in Eclipse?

War es hilfreich?

Lösung

y y oder Y , um die Zeile zu kopieren oder in
d d (Schneiden) die Zeile löschen

dann

p die kopiert oder gelöscht Text einfügen nach der aktuellen Zeile oder in
P die kopiert oder gelöscht Text vor die aktuelle Zeile

einfügen

Andere Tipps

Normal-Modus: siehe andere Antworten

.

Die Ex Art und Weise:

  • :t. wird die Zeile duplizieren,
  • :t 7 kopiert es nach Zeile 7
  • :,+t0 kopiert aktuelle und die nächste Zeile am Anfang der Datei (,+ ist ein Synonym für den Bereich .,.+1)
  • :1,t$ wird Linien von Anfang bis Cursor-Position bis zum Ende kopieren (1, ist ein Synonym für den Bereich 1,.).

Wenn Sie anstelle des Kopierens zu bewegen, verwenden Sie :m statt :t.

Das kann wirklich mächtig sein, wenn Sie es mit :g oder :v kombinieren:

  • :v/foo/m$ werden alle Linien bewegen sich nicht um das Muster „foo“ an das Ende der Datei entspricht.
  • :+,$g/^\s*class\s\+\i\+/t. werden alle nachfolgenden Zeilen der Form class xxx rechts hinter dem Cursor kopieren.

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

YP oder Yp oder yyp.

Kopieren und Einfügen in vim

Hat nicht einfacher als das! Vom Normalbetrieb:

yy

dann auf die Linie bewegen Sie und einfügen möchten

p

y y

wird die aktuelle Zeile zerren ohne sie löschen

d d

wird die aktuelle Zeile löschen

p

wird eine Linie durch eine der vorherigen Methoden packte put

Wenn Sie eine andere Art und Weise: -)

"ayy dies wird die Linie in Puffer a speichern

"ap Dadurch wird der Inhalt des Puffers a an der Cursorposition setzen.

Es gibt viele Variationen zu diesem Thema.

"a5yy diese speichert die 5 Zeilen in Puffer a

finden Sie unter http://www.vim.org/htmldoc/help.html für mehr Spaß

Tun Sie dies:

Zuerst y y die aktuelle Zeile kopieren und dann p einzufügen.

y y p - "yippee" erinnern sie mit

Mehrere Zeilen mit einer Zahl zwischen:

y 7 y p

y y p - Einfügen nach

y y P - Einfügen vor

Sie können auch versuchen , die die letzte Zeile von Insert-Modus wiederholen und bringt Ihnen ein Abschlussfenster mit allen Leitungen. Es funktioniert fast wie

Eine andere Möglichkeit wäre, mit zu gehen:

nmap <C-d> mzyyp`z

gibt Ihnen den Vorteil, dass die Cursorposition zu erhalten.

Für jemanden, der nicht vi kennt, einige Antworten von oben könnte verleiten ihn mit Phrasen wie "Paste ... nach / vor aktuelle Zeile ".
Es ist eigentlich "Paste ... nach / vor Cursor ".
y y oder Y , um die Zeile zu kopieren oder in
d d die Zeile

löschen

dann

p die kopiert oder gelöscht Text einfügen nach Cursor oder in
P die kopiert oder gelöscht Text vor Cursor

einfügen


Weitere Tastenbelegungen können Sie diese Website besuchen: vi Key Binding Liste vollständig

Ich mag: Umschalttaste + v (die ganze Zeile auswählen sofort und lassen Sie andere Linien wählen, wenn Sie möchten), y, p

1 Gotcha: Wenn Sie „p“ verwenden, um die Linie zu setzen, sie setzt es nach die Zeile Sie den Cursor auf, also, wenn Sie die Zeile nach der Zeile hinzufügen möchten Sie zerren nicht den Cursor eine Zeile nach unten zu verschieben, bevor die neuen Zeile setzen.

Der Standardwert ist y y p , aber ich habe ein Jahr lang diese erneute Bindung wurde unter Verwendung von oder so und lieben es:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

Ich weiß, ich bin spät zur Party, aber was auch immer; Ich habe dies in meinem .vimrc:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

der :copy Befehl nur kopiert die ausgewählte Linie oder den Bereich (immer ganze Zeilen) unter der Zeilennummer als Argument angegeben.

Im normalen Modus, was das bedeutet ist copy . kopieren Sie diese Zeile direkt unterhalb dieser Zeile .

Und im visuellen Modus verwandelt es in '<,'> copy '> Kopieren von Beginn der Auswahl der Auswahl der Zeile unter Ende der Auswahl zu beenden .

Für die Start-vi zu lernen, hier ist eine gute Einführung von bis vi Seite Auflistung von Seite vi Befehlen typische Windows-GUI-Editor Cursor-Bewegung und Shortcut-Tasten. Es listet alle grundlegenden Befehle einschließlich yy (Kopie Linie) und p (Paste nach) oder P (Paste vor).

vi (VIM) für Windows-Benutzer

Wenn Sie möchten, eine Zeile kopieren und fügen Sie ihn direkt unter dem aktuellen wie, genau wie in Sublime Strg + Umschalttaste + D , dann können Sie diese in Ihrer .vimrc Datei hinzufügen.

imap <S-C-d> <Esc>Yp

Ich mag diese Zuordnung verwenden:

:nnoremap yp Yp

, weil sie es konsequent machen neben dem nativen YP Befehl zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top