Как сделать так, чтобы оба сплита прокручивались влево или вправо одновременно?

16

Я хочу открыть две разные части документа по горизонтали (используя :sp) и прокрутить их влево и вправо вместе. Для вертикальной прокрутки вы бы использовали scrollbind. Однако я не уверен, что использовать для горизонтальной прокрутки.

Я знаю, что возможность должна быть доступна, потому что когда я использую vimdiff, она прокручивается горизонтально в обоих документах одновременно.

Кристофер Боттомс
источник

Ответы:

19

Чтобы прокрутить два окна вместе в vim, нужно запустить :set scrollbindв каждом из них. Как вы заметили, по умолчанию это связывает только вертикальную прокрутку. В документах для scrollbind упоминается:

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

:help scrolloptпоказывает, что вы хотите сказать, :set scrollopt+=horчтобы включить горизонтальную прокрутку.

Если вы просто хотите горизонтальную прокрутку (то есть отключить вертикальную прокрутку), то вы также захотите сказать :set scollopt-=verили явно установить scrollopt с помощью set scrollopt=horили :set scrollopt=hor,jump.

Мэтт Бём
источник
Не удается полностью отделить прокрутку. После того, как: set scrollopt = (равно ничего) по-прежнему команды перемещения, такие как 'm (перейти к отметке "m") или gg, выполняются в обоих моих двух окнах. Это Ubuntu Gvim после выполнения: вертикальное разделение без указания файла
Хуан Ланус
По-видимому, я решил проблему, упомянутую в предыдущем комментарии, установив: set nocursorbind в дополнение к: set scrollopt = (nothing)
Хуан Ланус
Не полностью решен. Остался другой вариант: установить nodiff. Мой vim думал, что я использую два представления одного и того же файла. Опция nodiff удаляет все штриховые линии, которые vimdiff использует для синхронизации обеих сторон.
Хуан Ланус