Faire défiler les deux parties d'une fenêtre fractionnée en même temps dans Vim

119

Est-il possible de faire défiler les parties gauche et droite d'une fenêtre fractionnée verticalement dans Vim? J'ai deux fichiers que je voudrais comparer grosso modo. Chaque ligne de ces fichiers a presque la même apparence .

LB40
la source

Réponses:

90

Consultez la documentation pour la liaison de défilement . Vous devrez définir ceci pour chaque fenêtre que vous souhaitez lier (par exemple un minimum de 2)

Si vous comparez 2 fichiers, cependant, vimdiff peut être plus utile

Brian Agnew
la source
4
Vimdiff ... où étais-tu toute ma vie?
hoosierEE
@BrianAgnew nous donne juste une commande pour copier, mec. Rend nos vies plus faciles. Merci pour vimdiff, cependant!
Nathan
184

Accédez à la première division et saisissez

:set scrollbind

Passez au suivant ( ctrl+ w) et faites de même.

Pour désactiver:

:set noscrollbind

Pour plus d'informations, consultez la documentation sur la liaison de défilement - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding

vyck
la source
58
Si tous les fichiers sont ouverts, vous pouvez également le :windo set scrollbinddéfinir pour tous les fractionnements à la fois.
Bernhard
54
:windo set scrollbind

définira scrollbind dans toutes les fenêtres.

Vihaan Verma
la source
3
Si vous vous trouvez à faire cela beaucoup, il peut être utile d'avoir quelque chose comme nmap <F5> :windo set scrollbind!<cr>activer le scrollbind dans toutes les fenêtres ouvertes.
jlund3
Je ne sais pas pourquoi mais cela scrollbind!n'a pas fonctionné pour moi, mais je l' invscrollbindai fait. Une SUPER cartographie. Merci!
UlfR
11

G'day,

Vous avez essayé d'utiliser vimdiff sur les deux fichiers?

vimdiff file1 file2

Cela vous donnera la liaison de défilement par défaut.

Rob Wells
la source
1
le problème est que toutes les lignes diffèrent, ça commence à être un désordre .. Les lignes sont presque les mêmes mais peuvent différer d'un caractère ... et je ne veux pas que mon point de vue soit trop perturbé..merci cependant.
LB40
1
@ LB40, vous pourriez envisager de modifier votre choix de couleurs, voir stackoverflow.com/questions/24666558
...
8

Depuis la ligne de commande:

vim -O file1 file2 -c 'windo set scb!'

-O = ouvert côte à côte.

-c = ce qui suit entre guillemets est traité comme une option vim.

'windo' = s'applique à tous les panneaux.

'scb' = raccourci pour scrollbind. Enregistre un peu de frappe, mais les deux sont interchangeables.

'!' = basculer. De cette façon, vous pouvez utiliser la même commande pour le désactiver ultérieurement si vous le souhaitez.

Noé
la source
5

Pour la postérité, voici ce que je devais faire, puisque je n'ai pas commencé avec vimdiff.

J'ai chargé un fichier. Ensuite: vsp pour charger l'autre.

Ce sont des fichiers assez différents, mais je voulais voir ce qui est commun entre eux.

Alors...

:set diff
:set diffopt=iwhite
:set scrollbind
Sam Habiel
la source
3
Vous pouvez obtenir tous ceux-ci pour un tampon donné (: diff,: diffopt,: scrollbind) en une seule commande avec: diffthis dans chacun des tampons
qneill