Qual é a maneira recomendada de copiar mudanças com o vimdiff?

102

Ao comparar arquivos e atualizar um repositório de código-fonte, gosto de usar o vimdiff. Para copiar as alterações feitas de um arquivo para outro, eu costumo usar uma sequência de chaves como esta: -

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, sendo o mestre dos atalhos de teclado, certamente deve ter uma maneira mais fácil de realizar essa mesma tarefa. Existe um? O que você usa para atualizar manualmente as alterações no código-fonte?

    
por Alex Leach 24.10.2012 / 12:42

1 resposta

159

do (diff obter) e dp (diff put) é o que você precisa. Aqui está um pequena lista de outros comandos de modo normal úteis neste contexto.

]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

NOTA:
Tanto do como dp funcionam se você estiver em um bloco ou apenas uma linha em um bloco no modo normal, mas não no modo visual. Ao selecionar linhas de texto no modo visual, você deve usar os comandos normais

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

Veja também :h copy-diffs .

:diffupdate irá verificar novamente os arquivos em busca de alterações.

    
por 24.10.2012 / 13:10

Tags