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.

14voto

Rook Punkte 57113

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

nmap <C-d> mzyyp`z

hat den Vorteil, dass die Cursorposition erhalten bleibt.

12voto

Sie können auch <C-x><C-l> ausprobieren, was die letzte Zeile aus dem Einfügemodus wiederholt und Ihnen ein Abschlussfenster mit allen Zeilen anzeigt. Es funktioniert fast wie <C-p>

0 Stimmen

Das ist sehr nützlich, aber um zu vermeiden, dass ich viele Tasten drücken muss, habe ich es nur auf CTRL-L gelegt, das ist meine Karte: inoremap ^L ^X^L

10voto

Michael Punkte 629

Für jemanden, der vi nicht kennt, könnten einige der obigen Antworten mit Ausdrücken wie "paste ... after/before" in die Irre führen. aktuelle Zeile ".
Es heißt eigentlich "einfügen ... nach/vor Cursor ".

yy o Y um die Zeile zu kopieren
o
dd um die Zeile zu löschen

dann

p um den kopierten oder gelöschten Text einzufügen nach die Cursor
o
P um den kopierten oder gelöschten Text einzufügen vor die Cursor

Weitere Tastenkombinationen finden Sie auf dieser Website: vi Vollständige Liste der Schlüsselbindungen

9voto

DarkWiiPlayer Punkte 6195

Ich weiß, ich bin spät dran, aber egal; ich habe das in meiner .vimrc:

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

die :copy kopiert einfach die ausgewählte Zeile oder den Bereich (immer ganze Zeilen) unter die als Argument angegebene Zeilennummer.

Im normalen Modus bedeutet dies Folgendes copy . Kopieren Sie diese Zeile bis direkt unter diese Zeile .

Und im visuellen Modus wird es zu '<,'> copy '> Kopieren vom Anfang der Auswahl bis zum Ende der Auswahl in die Zeile unter dem Ende der Auswahl .

3 Stimmen

Beste Antwort hier!

6voto

Savrige Punkte 2704

Ich ziehe es vor, eine eigene Tastaturbelegung zu definieren Ctrl + D sur .vimrc zum Duplizieren der aktuellen Zeile sowohl in normal Modus und einfügen. Modus:

" duplicate line in normal mode:
nnoremap <C-D> Yp
" duplicate line in insert mode:
inoremap <C-D> <Esc> Ypi

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