vim - 在第一个文件结束后停止滚动

时间:2011-11-05 22:10:17

标签: vim

默认情况下,当您向下滚动到vim窗口中显示的缓冲区的末尾时,您可以滚动,直到最后一个文件行位于vim显示区域的第一行。显示区域的所有其他行都标有“〜”字符。 当最后一个文件行位于vim窗口的底部时是否有停止滚动的配置?

编辑: 更准确地说,此行为仅适用于使用那些不存在的线标记填充屏幕的鼠标滚轮滚动或PgDown键导航。我使用向下箭头键逐行移动光标,它在最后一个文件行正确停止。

4 个答案:

答案 0 :(得分:10)

只需 z b 将当前行与窗口底部对齐。

E.g。 ž B'/ KBD>

毫不奇怪,有一系列相关的淘选动作:

  • z j down
  • z k up
  • z t top
  • z b bottom
  • z z center(middle)
  • z z center(middle)

为了完整性:

  • z l / z L 向右垂直平移
  • z h / z H 左边的垂直平底锅

另外,请查看scrolloff

我用

:set scrolloff=2

始终在当前光标行之前或之后保留2行的最小缓冲区。这使得这些平移动作几乎是神奇的。我花了一整天时间只使用

浏览代码库
  • paging Cd / Cu ,hjkl和频繁的平移重定位(主要是) z z
  • 导航} / {
  • ctags满足所有其他导航需求

答案 1 :(得分:1)

我不这么认为。但即使有,如果文件中的行数少于屏幕上的行数,您希望它如何表现?你必须以某种方式显示那些不存在的行。

如果文件的顶部在视图中,你必须有一些方法告诉vim显示这些行,但如果顶部不在视图中则不允许它们显示。

答案 2 :(得分:1)

不,你的描述不正确。

当您使用箭头或j / k键逐行向下滚动时,Vim将停在屏幕底部。 也就是说,它不会用不存在的行填充屏幕

然而,当一个人用PgDown / PgUp逐页向下,然后它可以在屏幕上获得不存在的行。这是无法避免的,因为PgDown / PgUp键不会逐行跳转。

答案 3 :(得分: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>

如果你不介意非常快速的滚动...