Comparer deux fichiers dans Vim


63

Est-il possible de voir deux fichiers côte à côte dans Vim? Si c'est le cas, comment puis-je configurer mon éditeur pour le faire, et existe-t-il un moyen de séparer diffles deux fichiers de Vim?

Je suis conscient de la :nextet :prevcommandes, mais ce n'est pas ce que je suis après. Ce serait vraiment bien de voir les deux fichiers en tandem.

Réponses:


43

Ouvrez la vue côte à côte:

Ctrl+w v

Changer entre eux:

Ctrl+w h or l

Extrayez le vimdiff commande, une partie du paquet vim, si vous voulez une vue diff comme:

vimdiff file1.txt file2.txt

2
Est-il possible de verrouiller le défilement entre les deux fenêtres?
Zaid

1
Oui, consultez vimdoc.sourceforge.net/htmldoc/options.html#%27scrollbind%27 - avec vimdiff, c’est la valeur par défaut.
maxschlepzig

1
J'utilise habituellement "diff fichier1 fichier2" sur la ligne de commande.
djangofan

2
@Zaid Use vimdiff file1.txt file2.txt(voir ci-dessous)
Eduardo Cuomo

42

Vous pouvez également ouvrir vim en mode écran partagé, avec l' -Ooption: -

vim -O file1 [file2 ...]

Pour activer ensuite le mode diff, vous devez exécuter la :diffthiscommande dans chaque volet.

Un autre scénario d'utilisation est si vous avez déjà un fichier ouvert dans vim et que vous voulez l'ouvrir et le comparer à un autre. Ensuite, vous pouvez utiliser les commandes vim suivantes: -

:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l  (swap to newly opened file)
:diffthis (turn on diff mode in opened file)

Vous pouvez ensuite désactiver le mode diff dans chaque volet avec la commande vim :diffoff.

EDIT
Et l'autre standard qui n'a pas été mentionné: -

vim -d file1 [file2 ...]

Cela équivaut à appeler vimdiffdirectement.


11
:windo :diffthispeut être utilisé à la place des trois dernières commandes.
Bernhard

2

Ou bien, ouvrez simplement le premier fichier dans VIM, puis :vert diffsplit file2 :vertdivisez l'écran verticalement.

diffsplit fait un diff, divise les fichiers et les fait défiler, les verrouille.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.