Jak mogę sprawić, by oba podziały przewijały się jednocześnie w lewo lub w prawo?

16

Chcę otworzyć dwie różne części dokumentu w poziomych podziałach (używając :sp) i przewijać je razem w lewo iw prawo. Użyj przewijania w pionie scrollbind. Nie jestem jednak pewien, czego użyć do przewijania w poziomie.

Wiem, że funkcja musi być dostępna, ponieważ kiedy korzystam vimdiff, przewija się ona poziomo w obu dokumentach jednocześnie.

Christopher Bottoms
źródło

Odpowiedzi:

19

Aby przewinąć dwa okna razem w vimie, musisz uruchomić :set scrollbindw każdym z nich. Jak zauważyłeś, domyślnie wiąże się to tylko z przewijaniem w pionie. W dokumentacji do scrollbind wspomina:

The behavior of 'scrollbind' can be modified by the 'scrollopt' option.

:help scrolloptujawnia, że ​​chcesz powiedzieć, :set scrollopt+=horaby umożliwić przewijanie w poziomie.

Jeśli chcesz po prostu przewijać w poziomie (tzn. Wyłącz przewijanie w pionie), możesz także powiedzieć :set scollopt-=verlub wyraźnie ustawić scrollopt za pomocą set scrollopt=horlub :set scrollopt=hor,jump.

Matt Boehm
źródło
Nie można w pełni oddzielić przewijania. Po ustawieniu: set scrollopt = (nic równego) nadal poruszaj poleceniami takimi jak „m (przeskocz do znaku„ m ”) lub gg są wykonywane na obu moich dwóch oknach. Jest to Ubuntu gvim po wykonaniu: podziału w pionie bez określonego pliku
Juan Lanus
Najwyraźniej rozwiązałem problem wymieniony w poprzednim komentarzu, ustawiając: set nocursorbind oprócz: set scrollopt = (nic)
Juan Lanus
Nie w pełni rozwiązany. Pozostała jeszcze jedna opcja: ustaw nodiff. Mój vim myślał, że różnicuję dwa widoki tego samego pliku. Opcja nodiff usunęła wszystkie kreski, których używa vimdiff do synchronizacji obu stron.
Juan Lanus