类似于Emacs的Vim滚动

gre*_*uan 3 vim emacs

对于那些不知道的人,Emacs滚动默认情况下的AFAIK按以下方式工作.

它不会滚动,直到用户到达可见缓冲区的末尾,当你到达可见缓冲区的末尾并且你在可见缓冲区上移动它不会加载一行,而是加载整个新页面,基本上.我想这是为了减少重新渲染屏幕时的延迟.

在Vim中实现这一目标的方法是什么?有没有办法做到这一点?如果没有,有什么指针可以实现这样的东西?我的想法是,可以获得两全其美,并在scrolloff达到时滚动半页或一页.

任何帮助表示赞赏.:)

Ken*_*ent 5

我想这会做你想要的:

set sj=-50
Run Code Online (Sandbox Code Playgroud)

查看:h 'sj'详细信息:

'scrolljump' 'sj'   number  (default 1)
            global
            {not in Vi}
    Minimal number of lines to scroll when the cursor gets off the
    screen (e.g., with "j").  Not used for scroll commands (e.g., CTRL-E,
    CTRL-D).  Useful if your terminal scrolls very slowly.
    When set to a negative number from -1 to -100 this is used as the
    percentage of the window height.  Thus -50 scrolls half the window
    height.
    NOTE: This option is set to 1 when 'compatible' is set.
Run Code Online (Sandbox Code Playgroud)