web-dev-qa-db-fra.com

Comment développer / réduire une section différente dans Vimdiff?

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

Raccourcis clavier:

  • do - Obtenir les modifications d'une autre fenêtre dans la fenêtre en cours.

  • dp - Mettez les modifications de la fenêtre en cours dans l'autre fenêtre.

  • ]c - Passer au prochain changement.

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

  • CTRL+Ww - Basculez vers l’autre fenêtre fractionnée (CTRL+WCTRL+W fait la même chose, au cas où vous lâcheriez le CTRL touche 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 diffs, par exemple.

290
TCSGrad

Mis à part ceux que vous avez mentionnés, je ne les utilise que fréquemment lorsque je diffère ce qui suit:

  • :diffupdate:diffu -> recalculez le diff, utile lorsque, après plusieurs modifications, vim's n'affiche plus les modifications minimales. 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ésactiver temporairement le défilement simultané sur les deux mémoires tampons, réactiver par :set scrollbind et faire défiler.

La plupart de ce que vous avez demandé est de plier: chapitre du pliage de vim user Manual . En dehors des diffs, j'utilise parfois:

  • zo -> pli ouvert.
  • zc -> fermer le pli.

Mais vous serez probablement mieux servi par:

  • zr -> réduction du niveau de repliement.
  • zm -> un niveau de pliage supplémentaire, s'il vous plaît.

ou même:

  • zR -> Réduisez complètement le pliage, dis-je !.
  • zM -> pliez Most !.

L’autre chose que vous avez demandée, utilisez n lignes de pliage, peut être trouvée dans le section du manuel de référence vim sur les options , via le section sur les diff :

  • set diffopt=<TAB>, puis mettez à jour ou ajoutez context:n.

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

231
ninjalj

définir vimdiff pour ignorer la casse

Avoir commencé vim diff avec

 gvim -d main.sql backup.sql &

Je trouve qu'un fichier contient des mots-clés MySQL en minuscule, l'autre en majuscule montrant les différences sur pratiquement toutes les lignes.

:set diffopt+=icase

cela met à jour l'écran dynamiquement et vous pouvez tout aussi facilement l'éteindre à nouveau

4
zzapper

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

3
tubbo

ctrl + w, w, comme mentionné, peut être utilisé pour naviguer de volet en volet.

Maintenant, vous pouvez sélectionner un changement particulier et le coller dans l’autre volet de la manière suivante.Voici, je donne un exemple comme si je voulais changer mon code de la sous-fenêtre 1 à la sous-fenêtre 2 et que mon curseur se trouve actuellement dans la sous-fenêtre1.

  • Utilisez les touches Shift-v pour mettre une ligne en surbrillance, les touches du haut ou du bas pour sélectionner le code souhaité, puis continuez à partir de l'étape 3 ci-dessous pour coller vos modifications dans l'autre volet.

  • Utilisez le mode visuel puis changez-le

    1 clic 'v' cela vous amènera au mode visuel 2 utilisez les touches haut ou bas pour sélectionner le code requis 3 cliquez sur, la touche d'échappement 'Esc' 4 Utilisez maintenant 'yy' pour copier ou 'jj' pour couper le changement 5 faire ' ctrl + w, w 'pour naviguer dans le volet2 6 cliquez sur' p 'pour coller votre modification là où vous le souhaitez

0
Pratheusha KK