vi / vim abrumpt buffer movements within window

Not a complete answer, but maybe a lead. There's scroll option. Help for that option reads, among other things:

{Vi is a bit different: 'scroll' gives the number of screen lines instead of file lines, makes a difference when lines wrap}