Hoe een hele regel in Vim dupliceren?

Hoe dupliceer ik een hele regel in Vimop een vergelijkbare manier als Ctrl+Din IntelliJ IDEA/Resharper of Ctrl+Alt+/in Eclipse?


Antwoord 1, autoriteit 100%

yyof Yom de regel te kopiëren (ezelsbruggetje: yen)

of

ddto deletede regel (Vim kopieert wat je verwijderd in een klembord-achtig “register”, zoals een knipbewerking)

dan

pom pastede gekopieerde of verwijderde tekst nade huidige lijn

of

Pom pastede gekopieerde of verwijderde tekst vóórde huidige regel


Antwoord 2, autoriteit 15%

Normale modus: zie andere antwoorden.

De Exmanier:

  • :t.zal de regel dupliceren,
  • :t 7kopieert het na regel 7,
  • :,+t0kopieert de huidige en volgende regel aan het begin van het bestand (,+is een synoniem voor het bereik .,.+1),
  • :1,t$kopieert regels van het begin tot de cursorpositie naar het einde (1,is een synoniem voor het bereik 1,.).

Als je moet verplaatsen in plaats van kopiëren, gebruik dan :min plaats van :t.

Dit kan heel krachtig zijn als je het combineert met :gof :v:

  • :v/foo/m$verplaatst alle regels die niet overeenkomen met het patroon “foo” naar het einde van het bestand.
  • :+,$g/^\s*class\s\+\i\+/t.Kopieert alle volgende regels van het formulier class xxxRECHTS na de cursor.

Referentie: :help range, :help :t, :help :g, :help :men :help :v


3, Autoriteit 10%

YPOF YPOF yyp.


4, Autoriteit 9%

krijgt niet eenvoudiger dan dit! Vanuit de normale modus:

yy

Ga vervolgens naar de regel die u wilt plakken op en

p

5, Autoriteit 2%

Y

rukt de huidige regel zonder deze

te verwijderen

D D

zal de huidige regel

verwijderen

P

Wordt puteen lijn gepakt door een van de vorige methoden


6, Autoriteit 2%

Als u een andere manier wilt:

"ayy:
Dit slaat de lijn op in de buffer a.

"ap:
Dit zal de inhoud van de buffer abij de cursor plaatsen.

Er zijn veel variaties hierover.

"a5yy:
Dit slaat de 5 regels op in de buffer a.

Zie "vim help-bestanden voor meer plezier.


7, Autoriteit 2%

Doe dit:

EERSTE, Y Y Om de huidige regel te kopiëren, en vervolgens P om te plakken.


8

Y Y P - Onthoud het met "YIPPEE!"

meerdere lijnen met een cijfer ertussen:

Y 7 Y P


9

Y Y P - Plakken na

yyP- plakken voor


Antwoord 10

Ik hou van:
Shift+v(om de hele regel onmiddellijk te selecteren en u desgewenst andere regels te laten selecteren), y, p


Antwoord 11

Je kunt ook <C-x><C-l> die de laatste regel uit de invoegmodus herhaalt en u een voltooiingsvenster met alle regels brengt. Het werkt bijna als <C-p>


Antwoord 12

Een andere optie zou zijn:

nmap <C-d> mzyyp`z

geeft u het voordeel dat u de cursorpositie behoudt.


Antwoord 13

Voor iemand die vi niet kent, kunnen sommige antwoorden van hierboven hem misleiden met zinnen als "plakken ... na/voor huidige regel".

Het is eigenlijk "plakken ... na/voor cursor".

yyof Yom de regel te kopiëren

of

ddom de regel te verwijderen

dan

pom de gekopieerde of verwijderde tekst nade cursorte plakken

of

Pom de gekopieerde of verwijderde tekst voorde cursor

te plakken

Voor meer toetsbindingen kunt u deze site bezoeken: vi Volledige toetsbindingslijst


Antwoord 14

Standaard is yyp, maar ik gebruik deze rebinding al een jaar of zo en ik ben er dol op:

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


Antwoord 15

Ik weet dat ik te laat op het feest ben, maar wat dan ook; Ik heb dit in mijn .vimrc:

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

de opdracht :copykopieert gewoon de geselecteerde regel of het bereik (altijd hele regels) tot onder het regelnummer dat als argument is opgegeven.

In de normale modus is dit copy .kopieer deze regel naar net onder deze regel.

En in de visuele modus verandert het in '<,'> copy '>kopieer van het begin van de selectie tot het einde van de selectie naar de regel onder het einde van de selectie.


Antwoord 16

1 gotcha: als je "p" gebruikt om de regel te plaatsen, wordt deze nade regel geplaatst waar je cursor op staat, dus als je de regel wilt toevoegen na de regel die je aan het trekken bent , verplaats de cursor niet een regel naar beneden voordat u de nieuwe regel plaatst.


Antwoord 17

Voor degenen die vi beginnen te leren, hier is een goede introductie tot vi door naast elkaar vi-commando's op te sommen voor typische Windows GUI Editor-cursorbewegingen en sneltoetsen. Het bevat alle basiscommando's, waaronder yy(regel kopiëren) en p(plakken na) of P(plakken voor).

vi (Vim) voor Windows-gebruikers


Antwoord 18

Als je een regel wilt dupliceren en meteen onder de huidige like wilt plakken, net als in Sublime Ctrl+Shift+D, dan kun je dit toevoegen aan je .vimrc-bestand.

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

Of, voor de invoegmodus:

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


Antwoord 19

Ik gebruik deze mapping graag:

:nnoremap yp Yp

omdat het consistent is om naast het native YP-commando te gebruiken.


Antwoord 20

Ik gebruik deze mapping, die vergelijkbaar is met vscode. Ik hoop dat het nuttig is!!!.

nnoremap <A-d> :t. <CR>==
inoremap <A-d> <Esc>:t. <CR>==gi
vnoremap <A-d> :t$ <CR>gv=gv

Other episodes