不要让 vim 滚动到底线以下

不要让 vim 滚动到底线以下

我怎样才能禁用 vim 让我滚动到文件末尾的功能?

答案1

Vim实际上不让你滚动超出文件末尾(例如,将光标移到最后一行),但它节目你落后最后一行几行,因为它必须展示某物

抱歉,它无法被禁用。除非你希望下载 Vim 的源代码(毕竟它是开源的),并且小提琴使用它。它会在不存在的行上插入 ~,因为它必须显示一些内容。所有编辑器都这样做。

正如有人建议的那样,有办法解决这个问题……但那也只是权宜之计。而且没有一个办法真的有效。我不会推荐任何一种方法。

答案2

一旦到达文件末尾,您可以使用zzzt将当前行分别移动到窗口中间或顶部。您可以随时执行此操作,无论文件中的什么位置。scrolloff如果您将设置设置为 5 ( ),则该设置将使光标停留在距离窗口顶部或底部 5 行的位置set scrolloff=5。但是,当您到达文件的顶部或底部时,此设置不起作用。

答案3

如果没有一个相当丑陋的 hack(可能看起来令人不快,并且会减慢 Vim 的速度),您就无法实现自己的目标。基本上,您必须为 CursorMoved/CursorMovedI 事件设置类似 autocmd 的东西,以尝试检测文件底部是否显示,如果显示,则执行一些正常模式命令来强制滚动位置。

值得注意的是(正如 johnny 在其评论中提供的链接中的人们所说),Vim 并不是唯一一个具有这种行为的应用程序,并且您无法在 Vim 中真正滚动到文件的末尾——最后一行必须始终可见。

答案4

如果你不介意它移动光标,那么这样做有效:

noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j

相关内容