不要讓 vim 滾動到底線以下

不要讓 vim 滾動到底線以下

如何禁用 vim 讓我滾動到文件末尾的功能?

答案1

維姆實際上並不讓你捲動超過文件末尾(例如,將遊標移動到最後一個現有行),但它節目你比最後一行落後幾行,因為它必須展示一些東西

無法禁用它,抱歉。除非你想下載 Vim 的原始碼(畢竟它是開源的)並且小提琴用它。它本身會在不存在的行上插入〜,因為它必須顯示一些內容。所有編輯都會這樣做。

正如有人建議的那樣,有一些解決方法可以解決這個問題......但這就是所有的解決方法。而且它們中沒有一個工作得非常漂亮。我不會推薦其中任何一個。

答案2

到達文件末尾後,可以使用zzzt將目前行分別移動到視窗的中間或頂部。無論文件中的位置如何,您都可以隨時執行此操作。如果將其設為 5 ( ),則該scrolloff設定將使遊標停留在距離視窗頂部或底部例如 5 行的位置set scrolloff=5。但是,當您到達文件的頂部或底部時,這不起作用。

答案3

如果沒有一個相當醜陋的 hack,可能看起來令人不安並減慢 Vim 的速度,你就無法做你想做的事。基本上,您必須為 CursorMoved/CursorMovedI 事件設定類似 autocmd 的內容,以嘗試偵測檔案底部是否顯示,如果顯示,則執行一些正常模式指令以強制捲動位置。

值得注意的是(正如約翰尼在評論中提供的鏈接中所說的那樣),Vim 並不是唯一具有這種行為的應用程序,並且您無法真正滾動到 Vim 中文件的末尾(最後一行)必須始終可見。

答案4

如果您不介意它移動遊標,則可以這樣做:

noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j

相關內容