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.

Zaid
la source

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
maxschlepzig
la source
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.

Alex Leach
la source
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.

Dustin
la source