Прокрутка вниз обеих частей разделенного окна одновременно в Vim


119

Можно ли в Vim прокрутить вниз левую и правую части вертикально разделенного окна? У меня есть два файла, которые я хотел бы приблизительно сравнить. Каждая строка этих файлов выглядит почти одинаково.

Ответы:


90

См. Документацию по привязке прокрутки . Вам нужно будет установить это для каждого окна, которое вы хотите связать (например, минимум 2)

Однако, если вы сравниваете 2 файла, vimdiff может оказаться более полезным.


4
Вимдифф ... где ты был всю мою жизнь?
hoosierEE

@BrianAgnew, просто дай нам команду скопировать, чувак. Делает нашу жизнь проще. Но спасибо за vimdiff!
Натан

185

Перейдите к первому разделению и введите

:set scrollbind

Перейдите к следующему ( ctrl+ w) и сделайте то же самое.

Отключить:

:set noscrollbind

Дополнительные сведения см. В документации по привязке прокрутки - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding


59
Если у вас открыты все файлы, вы также :windo set scrollbindможете установить его для всех разделений сразу.
Bernhard

54
:windo set scrollbind

установит scrollbind во всех окнах.


3
Если вы обнаружите, что делаете это nmap <F5> :windo set scrollbind!<cr>часто , было бы полезно иметь что-то вроде переключения прокрутки во всех открытых окнах.
jlund3

Не знаю почему, но scrollbind!у меня не сработало, но сработало invscrollbind. СУПЕР отображение. Спасибо!
UlfR

11

G'day,

Пробовали использовать vimdiff для двух файлов?

vimdiff file1 file2

Это даст вам привязку прокрутки по умолчанию.


1
проблема в том, что все строки различаются, это начинает превращаться в беспорядок .. Строки почти такие же, но могут отличаться на один символ ... и я не хочу, чтобы мой взгляд был сильно нарушен ... хотя, спасибо.
LB40 07

1
@ LB40 вы могли бы рассмотреть настройки вашего ColorScheme см stackoverflow.com/questions/24666558/...
qneill

8

Из командной строки:

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

-O = открывать бок о бок.

-c = то, что следует в кавычках, рассматривается как опция vim.

'windo' = применяется ко всем панелям.

'scb' = сокращение от scrollbind. Экономит набор текста, но они взаимозаменяемы.

'!' = переключить. Таким образом, вы можете использовать ту же команду, чтобы выключить его позже, если захотите.


5

Вот что мне нужно было сделать для потомков, поскольку я не начинал с vimdiff.

Загрузил один файл. Затем: vsp, чтобы загрузить другой.

Это довольно разные файлы, но я хотел посмотреть, что между ними общего.

Так...

:set diff
:set diffopt=iwhite
:set scrollbind

3
Вы можете получить все это для заданного буфера (: diff,: diffopt,: scrollbind) одной командой с: diffthis в каждом из буферов
qneill
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.