test_scrollbind.vim [plain text]
" Test for 'scrollbind' causing an unexpected scroll of one of the windows.
func Test_scrollbind()
" We don't want the status line to cause problems:
set laststatus=0
let totalLines = &lines * 20
let middle = totalLines / 2
new | only
for i in range(1, totalLines)
call setline(i, 'LINE ' . i)
endfor
exe string(middle)
normal zt
normal M
aboveleft vert new
for i in range(1, totalLines)
call setline(i, 'line ' . i)
endfor
exe string(middle)
normal zt
normal M
" Execute the following two commands at once to reproduce the problem.
setl scb | wincmd p
setl scb
wincmd w
let topLineLeft = line('w0')
wincmd p
let topLineRight = line('w0')
setl noscrollbind
wincmd p
setl noscrollbind
call assert_equal(0, topLineLeft - topLineRight)
endfunc