2009-11-20 82 views
4

Vim是否可以锁定窗口的顶部行,以便缓冲区中的第一行始终显示在窗口顶部?Vim:锁定窗口的顶部线

我有一个文件,比如数据库表的转储。第一行有列的名称,其他行包含数据。我希望能够上下滚动内容,并始终查看列名称。

N.B.行可能很长,所以我使用nowrap并希望列名和内容同时向左和向右滚动。这就是为什么:1split不适合 - 除非有办法同时滚动两个窗口。

谢谢。

回答

2

您可以同时滚动两个窗口,所以我认为您可以通过分割窗口来执行所需操作,并锁定滚动行为。有关更多详细信息,请参阅:scrollbindthis tip。请注意,您必须锁定每个窗口以便它们同步移动。

+1

的是一个很好的提示,但scrollbind建议需要一点点调整。默认情况下,scrollbind会同步在两个窗口中垂直滚动 - 这正是OP所不想要的,并且不会同步水平滚动 - 这是OP所要的。获得所需行为的方法是调整scrolloptions(:set sbo),以使'ver'不被包含,因此包含'hor'。然后窗口将水平同步但不垂直。 – 2009-11-21 06:32:27

+0

@Herbert - thx澄清。自从我认为我没有明确列出选项:scrollbind是一个很好的起点,但我认为你提供的额外信息是值得的。 – 2009-11-21 08:41:13

+0

非常感谢! Vim有很好的帮助系统,但有时很难理解你真正需要什么。 – 2009-11-21 10:09:35

1

拆分窗口,减小顶部窗口高度,将最上面一行设置为第一行并返回到工作窗口。

:split 
:resize 1 
gg 
Ctrl-w w 
0

谢谢你们!让我来总结一下做的工作对我来说实际的命令:

:1spl    # create an extra window with only 1 line 
:set scrollbind # synchronize upper window 
ctr+W , arrowDown # switch to other window 
:set scrollbind # synchronize lower window 
:set sbo=hor  # synchronize horizontally