321 votes

Comment développer/réduire une section de comparaison dans Vimdiff ?

J'ai commencé à utiliser vimdiff aujourd'hui, et je voulais faire certaines des choses que je considérais comme allant de soi avec les éditeurs de différences basés sur Windows (comme développer/réduire une section de différence, avoir une expansion de fichier complète/seulement des différences avec trois lignes de contexte au-dessus ou au-dessous, etc ). Je ne connais actuellement que les commandes suivantes :

Raccourcis clavier :

  • do - Transférer les changements d'une autre fenêtre dans la fenêtre actuelle.

  • dp - Mettez les changements de la fenêtre actuelle dans l'autre fenêtre.

  • ]c - Passez au changement suivant.

  • [c - Sauter à la modification précédente.

  • Ctrl + W , w - Passez à l'autre fenêtre partagée ( Ctrl + W , Ctrl + W fait la même chose, au cas où vous laisseriez tomber le Ctrl un peu plus tard)

Quelqu'un pourrait-il m'indiquer la bonne direction pour que je puisse reproduire des fonctionnalités similaires ?

Ce serait bien si je pouvais développer/réduire les lignes autour des différences, par exemple.

2 votes

Pour un raccourci permettant d'ajouter/revenir sur une longue liste de modifications, reportez-vous à la rubrique stackoverflow.com/q/6093746/212942

1 votes

Il est amusant de voir que la question est fermée après plus de 4 ans, alors qu'elle figure parmi les 3 premiers messages lorsque l'on recherche "vimdiff" sur Google !

274voto

ninjalj Points 22026

En dehors de ceux que vous mentionnez, je n'utilise fréquemment que les suivants lors de la diffusion :

  • :diffupdate :diffu -> recalculer la différence. C'est utile lorsque, après avoir effectué plusieurs modifications, Vim n'affiche plus les changements minimaux. Notez que cela ne fonctionne que si les fichiers ont été modifiés dans vimdiff. Sinon, utilisez :
  • :e pour recharger les fichiers s'ils ont été modifiés en dehors de vimdiff.
  • :set noscrollbind -> désactivation temporaire du défilement simultané sur les deux tampons, réactivation en :set scrollbind et le défilement.

La plupart de ce que vous avez demandé est pliable : le chapitre du manuel de l'utilisateur de Vim sur le pliage . En dehors des diffs, j'utilise parfois :

  • zo -> pli ouvert.
  • zc -> pli fermé.

Mais vous serez probablement mieux servi par :

  • zr -> réduire le niveau de pliage.
  • zm -> un niveau de pliage de plus, s'il vous plaît.

Ou même :

  • zR -> Réduire complètement le pliage, j'ai dit !.
  • zM -> plier la plupart .

L'autre chose que vous avez demandée, l'utilisation de n lignes de pliage, se trouve à l'adresse suivante Section du manuel de référence de Vim sur les options par l'intermédiaire du section sur le diff :

  • set diffopt=<TAB> puis mettre à jour ou ajouter context:n .

Vous devriez également jeter un coup d'œil à la section du manuel de l'utilisateur sur la diff .

0 votes

Très complet en effet ! !! Je vérifierais les liens que vous avez indiqués, mais je garde la question ouverte pendant quelques jours de plus pour voir si j'obtiens plus de réponses (j'ai posté ma question un week-end, et peu de gens sont actifs à ce moment-là).

0 votes

À propos, savez-vous si vimdiff peut être utilisé pour la fusion et la résolution à trois, etc. ? Ce serait vraiment génial alors ! !

1 votes

@shan23 Pour la fusion à 3 voies (pour git), vérifiez este dehors. Il y a aussi des commentaires sur svn. J'essaie toujours de comprendre les commandes lorsque vous avez 4 buffers (do/dp ne fonctionnent pas).

12voto

Anirudh Points 367

Si vous cherchez une introduction super simple, j'ai quelque chose ici - http://gingerjoos.com/blog/linux/vimdiff-the-cool-way-to-diff-for-vim-users . De plus, il y a quelques conseils intéressants dans la section des commentaires.

6voto

zzapper Points 610

Configurer vimdiff pour ignorer la casse.

Après avoir lancé vim diff avec

 gvim -d main.sql backup.sql &

Je trouve qu'il est ennuyeux qu'un fichier contienne des mots-clés MySQL en minuscules, l'autre en majuscules, montrant des différences sur pratiquement une ligne sur deux.

:set diffopt+=icase

L'écran est ainsi mis à jour de manière dynamique et vous pouvez tout aussi facilement le désactiver.

0 votes

Bien qu'il s'agisse d'une astuce intéressante, je ne vois pas en quoi elle est liée à la question posée (comment développer et réduire les sections de différences dans vimdiff).

4voto

tubbo Points 315

En fait, si vous faites Ctrl + W , W vous n'aurez pas besoin d'ajouter ce supplément. Ctrl . Il fait la même chose.

15 votes

Je trouve ^W ^W beaucoup plus rapide à taper rapidement que ^W w.

0 votes

J'ai pensé que cela valait la peine d'être mentionné github.com/ankr/dotfiles/blob/master/files/vimrc#L103

3voto

Ruslan Osipov Points 2322

Si, comme moi à un moment donné, vous cherchez un guide pour utiliser vimdiff avec git, ce tutoriel est un bon point de départ : " Utiliser vimdiff comme outil de fusion git ".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X