CMB
CMB

Reputation: 4145

Automatically scroll screen in vim when near top/bottom?

I would like to have smarter screen scrolling when I'm editing. When I reach within X number of lines from the top/bottom of the screen, I would like it to scroll the screen as I continue moving the cursor (so I can always see, at minimum, X lines below or above).

I know ctrl-y and ctrl-e will scroll, but is there a way I can have vim detect when I hit j or k how far I am from the top/bottom of the screen so it can move the screen as needed? I also know zz will center on the current cursor location, but I'd like there to be an area where it doesn't scroll.

Thanks.

Upvotes: 51

Views: 11701

Answers (3)

user15071
user15071

Reputation: 3431

Try scrolloff=9999. After cursor reaches middle of the screen, pressing j moves the screen up by one, instead of moving the cursor down. Works great once you get used to it.

Upvotes: 7

Rob Wells
Rob Wells

Reputation: 37103

You might to also look at scrolljump which sets the number of lines scrolled when hitting the "border" set by scrolljump.

Upvotes: 5

John G
John G

Reputation: 3533

From my .vimrc:

set scrolloff=3 " Keep 3 lines below and above the cursor

Upvotes: 107

Related Questions