vi/vim-editor, kopieer een blok (niet gebruikelijke actie)

In de vi/vim-editor moet ik een blok kopiëren. Er zijn veel manieren, maar één manier is erg snel.

  1. label de eerste regel op de een of andere manier,

  2. label vervolgens de eindregel op een of andere manier,

  3. voer dan een commando in om de gelabelde regels te kopiëren.

  4. kopieer dan, misschien met ‘p’, maar weet het niet zeker.

Iemand die de commando’s kent (niet yy of 10yy)? Bij voorbaat dank.


Antwoord 1, autoriteit 100%

Een andere optie die misschien gemakkelijker te onthouden is, is het plaatsen van markeringen op de twee regels met maen mb en voer vervolgens :'a,'byankuit.

Veel verschillende manieren om deze taak te volbrengen, alleen een andere aanbieden.


Antwoord 2, autoriteit 91%

gebruik gewoon Vom regels te selecteren of vom tekens te selecteren of Ctrlvom een blok te selecteren.

Als de selectie het gebied beslaat dat u wilt kopiëren, drukt u op yen gebruikt u pom het te plakken waar u maar wilt…


Antwoord 3, autoriteit 92%

Hun documentatie zegt:

Knip en plak:

  1. Plaats de cursor waar u wilt beginnen met snijden.
  2. Druk op vom tekens te selecteren (of op hoofdletters Vom hele regels te selecteren).
  3. Verplaats de cursor naar het einde van wat je wilt knippen.
  4. Druk op dom te knippen (of op yom te kopiëren).
  5. Verplaats naar waar je wilt plakken.
  6. Druk op Pom voor de cursor te plakken, of op pom erna te plakken.

Kopiëren en plakken wordt uitgevoerd met dezelfde stappen, behalve bij stap 4, waar u op y zou drukken in plaats van op d:

d= delete= cut

y= yank= copy


Antwoord 4, autoriteit 51%

Ik vond het onderstaande commando veel handiger. Als u regels van 6 naar 12 wilt kopiëren en plakken vanaf de huidige cursorpositie.

:6,12 co .

Als u regels van 6 naar 12 wilt kopiëren en vanaf de 100e regel wilt plakken.

:6,12t100

Bron: https://www.reddit.com/r/vim /comments/8i6vbd/efficient_ways_of_copying_few_lines/


Antwoord 5, autoriteit 44%

Het klinkt alsof je markeringenin het bestand wilt plaatsen.

mxplaatst een teken met de naam xonder de cursor

y'xtrekt alles tussen de huidige positie van de cursor en de regel met mark x.

U kunt 'xgebruiken om de cursor eenvoudig naar de regel met uw markering te verplaatsen.

U kunt `x(een back-tick) gebruiken om naar de exacte locatievan het teken te gaan.


Eén ding dat ik altijd doe, is alles tussen de cursor en de x naar het klembord trekken.

Je kunt dat als volgt doen:

"+y'x

OPMERKING: In sommige omgevingen wordt de klembordbuffer weergegeven door een *in plaats van een +.


Vergelijkbare vragen met enkele goede antwoorden:


Antwoord 6, autoriteit 26%

Sneltoetsen daarvoor zijn:

  1. Voor kopiëren: plaats de cursor op het begin van het blok en druk op mden ga dan naar het einde van het blok en druk op y’d. Dit zal het blok selecteren om het te plakken, druk op p

  2. Voor knippen: plaats de cursor op het begin van het blok en druk op maen ga dan naar het einde van het blok en druk op d’a. Dit zal het blok selecteren om het te plakken, druk op p


Antwoord 7, autoriteit 2%

Je kunt het doen zoals je doet in vi, bijvoorbeeld om regels van 3020 naar het einde te trekken, voer dit commando uit (schrijf het blok naar een bestand):

:3020,$ met /tmp/yank

En om dit blok in een andere regel/bestand te schrijven, ga naar de gewenste positie en voer het volgende commando uit (voeg een eerder geschreven bestand in):

:r /tmp/yank

(Herinnering: vergeet niet het bestand te verwijderen: /tmp/yank)

Other episodes