web-dev-qa-db-fra.com

Diff deux onglets dans Vim

Scénario: j'ai ouvert Vim et collé du texte. J'ouvre un deuxième onglet avec :tabe et collez-y un autre texte.

Objectif: je voudrais un troisième onglet avec une sortie équivalente à l'écriture des deux textes dans des fichiers et à leur ouverture avec vimdiff.

Le plus proche que je puisse trouver est "diff le tampon actuel contre un fichier", mais pas diffing deux tampons ouverts mais non enregistrés.

118
dukedave

Je suggère d'ouvrir le deuxième fichier dans le même onglet au lieu d'un nouveau.

Voici ce que je fais habituellement:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

La commande :vnew divise la vue actuelle verticalement afin que vous puissiez y ouvrir le deuxième fichier. La commande :diffthis (ou abrégée: :difft) Est ensuite appliquée à chaque vue.

185
Jan

Je suggère d'essayer : diffthis ou : diffsplit

38
joeslice

Lorsque vous avez deux fichiers ouverts en fractionnement vertical, exécutez

:windo diffthis

25
A B

Le contenu de tous les onglets se trouve dans les tampons. Regardez les tampons:

:buffers

Trouvez le bon numéro pour le contenu qui doit être différent du contenu de votre onglet actuel.

Ouvrez le tampon à l'intérieur de votre onglet actuel (par ex. Tampon numéro 4)

:sb 4

Ou faites pour la vue verticale:

:vertical sb 4

Ensuite, vous pouvez simplement différencier le contenu avec

:windo diffthis

Si vous avez terminé l'analyse diff, vous pouvez saisir:

:windo diffoff
1
snap