tags:

views:

261

answers:

1

Is it possible in Vim to lock the top line of a window so that the first line in buffer is always seen on top of the window?

I have a file, say, dump of a database table. On the first line there are names of columns, other lines contain data. I want to be able to scroll contents up and down, and always see column names.

N.B. Lines can be lengthy, so I use nowrap and want column names and contents to scroll right and left simultaneously. That's why :1split doesn't suit -- unless there's a way to scroll two windows at the same time.

Thanks.

+1  A: 

You can scroll two windows at the same time, so I think you can do what you want by splitting your window, and locking the scrolling behaviour. See :scrollbind and this tip for more details. Note that you have to lock each window in order that they move in sync.

Brian Agnew
The is is a good tip, but the scrollbind suggestion needs a little tweaking. By default scrollbind will sync scrolling in the two windows vertically -- which is exactly what the OP _doesn't_ want, and it won't sync the horizontal scrolling -- which is what the OP does want. The way to get desired behavior is to adjust the scrolloptions (:set sbo) so that 'ver' is _not_ included and so 'hor' is included. Then windows will sync horizontally but not vertically.
Herbert Sitz
@Herbert - thx for the clarification. I'd not explicitly listed the options since I figured :scrollbind was a good starting point, but I think the extra info you've provided is worthwhile.
Brian Agnew
Thanks a lot! Vim has great help system, but sometimes it's difficult to understand what do you actually need.
egorius