web-dev-qa-db-fra.com

Quelle est la méthode recommandée pour copier les modifications avec vimdiff?

Lors de la comparaison de fichiers et de la mise à jour d'un référentiel de code source, j'aime utiliser vimdiff. Pour copier les modifications apportées d'un fichier à l'autre, j'utilise généralement une séquence de touches comme celle-ci: -

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, étant le maître des raccourcis clavier, devrait sûrement avoir un moyen plus facile d'effectuer cette même tâche. Est-ce qu'il y a un? Qu'utilisez-vous pour mettre à jour manuellement les modifications du code source?

123
Alex Leach

do (diff get) et dp (diff put) est ce dont vous avez besoin. Voici une petite liste d'autres commandes utiles en mode normal dans ce contexte.

]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

REMARQUE:
do et dp fonctionnent si vous êtes sur un bloc ou juste une ligne sous un bloc en mode normal mais pas en mode visuel. Lors de la sélection de lignes de texte en mode visuel, vous devez utiliser les commandes normales

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

Voir également :h copy-diffs.

:diffupdate analysera à nouveau les fichiers pour les modifications.

194
Marco