it-swarm-eu.dev

Jaký je doporučený způsob kopírování změn pomocí vimdiff?

Při porovnávání souborů a aktualizaci úložiště zdrojových kódů rád používám vimdiff. Pro kopírování změn provedených z jednoho souboru do druhého obvykle používám sekvenci kláves takto: -

Shift + V (select line)
k or j; { or }; Up or down arrow keys (select more lines)
y  (copy selected lines)
Ctrl + w, left/right arrow (move to other pane)
p (paste lines)

Vim, který je mistrem klávesových zkratek, by měl jistě mít snadnější způsob, jak provést stejný úkol. Existuje? Co používáte k ruční aktualizaci změn zdrojového kódu?

123
Alex Leach

do (diff získat) a dp (diff put) je to, co potřebujete. Zde je malý seznam dalších užitečných příkazů normálního režimu v této souvislosti.

]c               - advance to the next block with differences
[c               - reverse search for the previous block with differences
do (diff obtain) - bring changes from the other file to the current file
dp (diff put)    - send changes from the current file to the other file
zo               - unfold/unhide text
zc               - refold/rehide text
zr               - unfold both files completely
zm               - fold both files completely

POZNÁMKA:
Obě funkce do i dp fungují, pokud se nacházíte v bloku nebo jen na jednom řádku pod blokem v normálním režimu, ale ne ve vizuálním režimu. Při výběru řádků textu ve vizuálním režimu musíte použít normální příkazy

  • :'<,'>diffget a
  • :'<,'>diffput.

Viz také :h copy-diffs.

:diffupdate znovu provede kontrolu změn souborů.

194
Marco