vi / vim 窗口内的突然缓冲区移动

vi / vim 窗口内的突然缓冲区移动

在 vi/vim 中使用时:set wrap,将光标移到新行时,整行换行的内容都会放在显示缓冲区中,即使通过显示行 (gj/gk) 而不是实际行 (j/k) 浏览文件也是如此。例如,如果一行换行超过 5 个屏幕行,并且当前超出显示缓冲区,则在导航到此行时缓冲区将跳转 5 行,以强制整行适合屏幕。有没有办法禁用此行为?请注意,set display+=lastline当换行行因离开该行而被迫离开屏幕时,将允许显示部分行,但这不能解决导航到最初超出缓冲区的行时发生的缓冲区跳转。

澄清:如果上述描述不清楚,其要点是我希望能够在启用换行功能的情况下在 vim 中平滑滚动,以便行将部分显示在屏幕之外,而不是强制全部显示。

答案1

这不是完整的答案,但可能是线索。有scroll一个选项。该选项的帮助内容如下:

{Vi 稍有不同:'scroll' 给出的是屏幕行数而不是文件行数,换行时会有所不同}

答案2

gk在正常模式下,您可以使用and gjg<up>或)在换行的显示部分之间跳转g<down>这个 vim 维基页面解释如何永久地改变行为。

相关内容