2009-07-08 9 views
110

Scénario: J'ai ouvert Vim et j'ai collé du texte. J'ouvre un deuxième onglet avec :tabe et collez un autre texte là-dedans.Diff deux onglets dans Vim

Objectif: Je voudrais un troisième onglet avec une sortie équivalente à écrire les deux textes dans des fichiers et les ouvrir avec vimdiff.

Le plus proche que je peux trouver est "diff le tampon courant contre un fichier", mais pas diff ing deux tampons ouverts mais non sauvés.

+1

Quelle est la commande tabe? – hhafez

+1

@hhafez - ouvre un nouveau tampon dans un nouvel onglet – Rook

+3

C'est un raccourci pour: tabedit, alias: tabnew. – TSomKes

Répondre

176

Je suggère d'ouvrir le second 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 ouvrir le second fichier là. La commande :diffthis (ou courte: :difft) est ensuite appliquée à chaque vue.

+4

Ah, je ne connaissais pas '' vnew' non plus, bon conseil! – dukedave

+1

Fwiw, MacVim ne semble pas avoir cela par défaut, mais je pense que vous devriez être en mesure d'aller au terminal et tapez 'vimdiff file1.txt file2.txt' et vous assommer. – ruffin

+8

Vous venez de me faire peur. Ma vie ne sera plus jamais la même après ': diffthis'. Merci beaucoup. Je vous remercie! –

37

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

+10

': vert diffsplit' donne une vue diff plus traditionnelle que sans': vert' – ephemient

+7

Vous pouvez: définir diffopt + = vertical pour faire: vert la valeur par défaut. – graywh

+3

Aussi, pour faire défiler deux fenêtres simultanément: ': set scrollbind' dans les deux. –

20

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

:windo diffthis

+6

utilisez '' ': diffoff''' pour désactiver le mode diff –

+1

Mais comment passer de deux onglets à un partage vertical? – erik

0

Le contenu de tous les onglets sont à l'intérieur des tampons. Regardez les tampons:

:buffers 

Trouver le bon numéro pour le contenu qui devrait être mis au format avec le contenu de votre onglet en cours.

Ouvrez le tampon dans votre onglet en cours (numéro de tampon fe 4)

:sb 4 

Ou pour une vue verticale:

:vertical sb 4 

Ensuite, vous pouvez simplement diff le contenu avec

:windo diffthis 

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

:windo diffoff