2011-11-05 52 views
14

默認情況下,當您向下滾動到vim窗口中顯示的緩衝區的末尾時,可以滾動,直到最後一個文件行位於vim顯示區域的第一行。顯示區域的所有其他行都標有「〜」字符。 當最後一個文件行位於vim窗口的底部時,是否有配置停止滾動?vim - 第一個文件結束後停止滾動

編輯: 更確切地說,這種行爲僅適​​用於鼠標滾輪滾動或PgDown鍵導航,它們會在屏幕上填充那些不存在的線條標記。我使用向下箭頭鍵逐行移動光標,它在最後一個文件行處正確停止。

+0

我不知道,如果你能設法得到VIM像你想工作? – JohnTortugo

回答

10

只需zb將當前行對齊到窗口的底部。

例如ģŽb

不surpisingly有一族相關平移運動:

  • ŽĴ向下
  • Žķ向上
  • ž噸頂部
  • Žb底部
  • Žž中心(中間)
  • Žž中心(中間)

對於compl eteness:

  • Ž升/Ž大號垂直盤向右
  • Žħ/Žħ垂直平移到左

此外,看看scrolloff

我使用

:set scrolloff=2 

始終保持的2條線的最小緩衝之前或在當前光標行之後。這使得這些平移動作幾乎具有魔力。我花了一整天的瀏覽代碼庫使用無非是

  • 尋呼/,hjkl,以及頻繁平移搬遷與(大部分)žž
  • 導航}/{
  • ctags適用於所有其他導航需求
+0

是的,我已經有一個滾動設置。但它與PgDown或鼠標滾輪無關。 – greydet

+0

有沒有辦法重新映射PgDown或鼠標滾輪下滾動使用基於'Z'命令組合自動停止他們在最後一個文件行? – greydet

+0

實際上,一個可能的解決方案是將鼠標滾輪和頁面下移鍵重新映射到'}'命令。感謝您讓我知道這個導航命令 – greydet

1

我不這麼認爲。但即使存在,如果文件中的行數少於屏幕上的行數,您希望它的行爲如何?你必須以某種方式顯示那些不存在的行。

你必須有一些方法告訴vim如果文件的頂部在視圖中顯示那些行,但如果頂部不在視圖中則不允許它們顯示。

+3

當然,如果文件沒有足夠的線條來填充屏幕,那麼不存在那些不存在的線條標記。我只是不希望PgDown或鼠標滾輪滾動到文件末尾 – greydet

1

不,您的描述不正確。

當你用一行一行地滾動並用箭頭鍵或j/k鍵時,Vim將停在屏幕的底部。 也就是說,它不會填充屏幕與不存在的線。

但是,如果用PgDown/PgUp逐頁瀏覽,則可以在屏幕上顯示不存在的行。這是無法避免的,因爲PgDown/PgUp鍵不會一行一行地跳下去。

+1

是的,這正是我想要避免的:使用PgDown或鼠標滾輪滾動在屏幕上顯示不存在的行! – greydet

+0

@greydet - 那麼,當你在最後一頁上PgDown時,你會如何表現Vim? – Rook

0

我剛剛發現這個(http://vimrc-dissection.blogspot.se/2009/02/fixing-pageup-and-pagedown.html):

map <silent> <PageUp> 1000<C-U> 
map <silent> <PageDown> 1000<C-D> 
imap <silent> <PageUp> <C-O>1000<C-U> 
imap <silent> <PageDown> <C-O>1000<C-D> 

這似乎爲翻頁鍵工作。而對於後滾動一些不成功的搜索,我想出了這個:

map <ScrollWheelUp> H5k 
map <ScrollWheelDown> L5j 

你失去了線,但無論如何滾動時,它不是非常有用嗎?或者,你也可以這樣做:

map <ScrollWheelUp> <C-U> 
map <ScrollWheelDown> <C-D> 

如果你不介意的話非常快速滾動...