2009-11-20 80 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