2009-10-28 15 views

Répondre

51
  • A partir du terminal

Si vous avez le script mvim installé (il est dans le dmg, il suffit de mettre quelque part dans votre PATH), vous pouvez taper dans une coquille:

 
mvim -d file1 file2 

Vous pouvez alias ceci à mvimdiff si vous le souhaitez.

  • De l'intérieur MacVim

En MacVim, comme dans vim, vous pouvez également utiliser:

 
:e file1 
:diffsplit file2 
or 
:vert diffsplit file2 

La deuxième option vous donne une diff verticale, ce qui est généralement plus lisible

+0

Aha! Merci pour l'astuce in-vim. Il semble qu'il y ait toujours quelque chose de nouveau à apprendre chez vim: D – Antonio

+0

Vous êtes les bienvenus! : aidez diff est votre ami. – LeMiz

+0

Est-il possible de diff un autre tampon au lieu d'un fichier? –

10

Si vous créez un lien symbolique entre gvimdiff et mvim, mvim commence par -d, etc. Vim et Mvim regardent le nom de l'exécutable avec lequel ils ont été démarrés pour déterminer leur comportement . Voilà comment gvim et vim peuvent être à la fois le même exécutable sous Linux et le même sur OSX.

+0

Excellente info à connaître. Merci! – Antonio

+1

Cela n'a pas fonctionné pour moi. J'ai eu cette erreur: "L'outil de diff gvimdiff n'est pas disponible en 'gvim'". –

+0

@Raffi - Beaucoup de choses peuvent changer en 2 ans, c'était un bon conseil à l'époque. – Benj

8

Ok. J'ai répondu:

Pour différencier deux buffers ouverts dans vim, ouvrez-les verticalement, sélectionnez le premier et tapez :diffthis puis le deuxième et tapez :diffthis à nouveau.

Cela fonctionne pour plus de deux tampons trop =)

+0

C'est un bon conseil. Merci :) – Manish

1

Cela a fonctionné pour moi sur mac. J'utilise MacVim snapshot 72:

/Applications/MacVim.app/Contents/MacOS/Vim -d -g path_to_file1 path_to_file2 

Cela fonctionne exactement comme gvimdiff sur windows.

Mise à jour: Il fonctionne même avec 3 fichiers. Cette commande divisera l'écran en 3 directions et vous permettra de faire un diff à 3 voies dans macvim:

/Applications/MacVim.app/Contents/MacOS/Vim -d -g path_to_file1 path_to_file2 path_to_file3