When switching buffers with
<ctrl>-^, I commonly see the line with the cursor (the current line) move to the middle of the window (maybe related to the
scroll_cursor_halfway function mentioned in this question?). I'm used to this, and it can be very convenient for visually comparing two slightly different versions of the same file by quickly alternating between them so that a visual beat is created for any mismatching text.
However, sometimes it doesn't happen for some unknown reason; the line with the cursor is left on, say, the bottom row of the window, or wherever it was. I understand why this would happen if I'm near the top or bottom of the buffer's contents. But can happen even when the current line is in the middle of a large buffer.
Why does this happen and how can I make it more consistent?