it-swarm-eu.dev

Duplikujte celý řádek ve Vimu

Jak mohu duplikovat celý řádek ve Vim podobným způsobem Ctrl+D v IntelliJ IDEA/Resharper nebo Ctrl+Alt+/ v Eclipse?

1492
sumek

yy nebo Y kopírovat řádek
nebo
dd smazání (řezání) čáry

pak

p Vložit zkopírovaný nebo smazaný text po aktuální řádek
nebo
P Vložit zkopírovaný nebo smazaný text dříve aktuální řádek

2555
Mark Biek

Normální režim: viz další odpovědi.

Ex cesta:

  • :t. bude duplikovat řádek,
  • :t 7 jej zkopíruje za řádek 7,
  • :,+t0 zkopíruje aktuální a další řádek na začátku souboru (,+ je synonymem rozsahu .,.+1),
  • :1,t$ kopíruje řádky od začátku do pozice kurzoru až do konce (1, je synonymem pro rozsah 1,.).

Pokud potřebujete místo kopírování přesunout, použijte :m místo :t.

To může být velmi výkonné, pokud ho zkombinujete s :g nebo :v

  • :v/foo/m$ přesune všechny řádky, které neodpovídají vzoru „foo“, na konec souboru.
  • :+,$g/^\s*class\s\+\i\+/t. zkopíruje všechny následující řádky formuláře class xxx hned za kurzorem.

Odkaz: :help range, :help :t, :help :g, :help :m a :help :v

375
Benoit

YP nebo Yp nebo yyp.

279
Linulin

copy and paste in vim

Není to jednodušší než tohle! Z normálního režimu:

yy

pak přejděte na řádek, do kterého chcete vložit a

p
229
Adam

yy

vyřadí aktuální řádek, aniž by ji vymazal

dd

smaže aktuální řádek

p

bude put řádek uchopený některou z předchozích metod

49
pjz

Udělej to:

První, yy zkopírovat aktuální řádek a poté p vložit.

38
Eric Z Beard

Pokud chcete jiný způsob :-)

"ayy tento řádek uloží do vyrovnávací paměti a

"ap toto umístí obsah bufferu a na kurzor.

Existuje mnoho variací.

"a5yy uloží 5 řádků do vyrovnávací paměti a

viz http://www.vim.org/htmldoc/help.html pro více zábavy

38
Kwondri

yyp - pamatujte si to s "yippee!"

Více řádků s číslem mezi:

y7yp

37
theschmitzer

yyp - vložit po

yyP - vložte předtím

22
yemu

Můžete také vyzkoušet <C-x> <C-l>, který bude opakovat poslední řádek z režimu vkládání a přinese okno dokončení se všemi řádky. Funguje to téměř jako <C-p>

11
nikolavp

Další možností by bylo jít s:

nmap <C-d> mzyyp`z

vám dává výhodu zachování pozice kurzoru.

11
Rook

Mám rád: Shift+v (chcete-li vybrat celý řádek okamžitě a nechat si vybrat další řádky, pokud chcete), y, s

10
Gabe

Pro někoho, kdo neví vi, by některé odpovědi z výše uvedeného mohly uvést do omylu fráze jako „vložit ... po/před aktuální řádek".
Je to vlastně "vložit ... po/před." kurzor".

yy nebo Y kopírovat řádek
nebo
dd smazat řádek

pak

p vložit zkopírovaný nebo smazaný text po the kurzor
nebo
P vložit zkopírovaný nebo smazaný text před  kurzor


Pro další klíčové vazby můžete navštívit tyto stránky: vi Kompletní seznam vazeb klíčových klíčů

10
Michael

1 gotcha: když použijete "p" pro vložení řádku, vloží to po řádek, na kterém je kurzor, takže pokud chcete přidat řádek za řádek, který jíte, nepohybujte před vložením nového řádku kurzorem dolů.

3
cori

Výchozí hodnota je yyp, ale tento reinkding jsem používal rok nebo tak a miluju ho:

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

2
Chris Penner

Pro ty, kteří se začínají učit vi, zde je dobrý úvod do vi seznamem vedle sebe příkazy vi k typickým pohybům kurzoru a klávesovým zkratkám Windows GUI Editoru. Uvádí všechny základní příkazy včetně yy (kopírovací řádek) a p (vložit po) nebo P(vložte dříve).

vi (Vim) pro uživatele Windows

1
ap-osd

Vím, že jsem pozdě na párty, ale cokoliv; Mám to v mém .vimrc:

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

příkaz :copy zkopíruje pouze vybraný řádek nebo rozsah (vždy celé řádky) pod číslo řádku uvedené jako jeho argument.

V normálním režimu je to copy . kopírovat tento řádek těsně pod tento řádek .

A ve vizuálním režimu se změní na '<,'> copy '> kopie od začátku výběru do konce výběru na řádek pod koncem výběru .

1
DarkWiiPlayer

Pokud byste chtěli duplikovat řádek a vložit jej hned pod aktuálním způsobem, stejně jako ve Sublime Ctrl+Shift+D, pak to můžete přidat do souboru .vimrc.

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

0
jedi

Líbí se mi použít toto mapování:

:nnoremap yp Yp

protože umožňuje konzistentní použití vedle nativního příkazu YP.

0
yolenoyer