在Vim中zt和zz之间的滚动窗口

Xio*_*iov 5 vim scroll

我经常发现自己想要滚动一个Vim窗口,这样我所在的线路大约是屏幕的四分之一 - 它提供了更多的呼吸空间zt,但显示的代码比显示的更多zz.当我的光标位于我想要阅读的函数的开头时,它也会有所帮助,但zt会切断类似Javadoc的注释.

我可以使用一些魔法来做到这一点吗?我恐怕根本不理解Vim的脚本.

Cod*_*key 9

也许set scrolloff=5(或者你希望在光标上方和下方有多少行)可以帮到你.这不是你要求的,但足够接近?


Ben*_*oit 6

你可以使用:

nnoremap <expr> zT 'zt' . winheight(0)/4 . '<c-y>'
nnoremap <expr> zB 'zb' . winheight(0)/4 . '<c-e>'
Run Code Online (Sandbox Code Playgroud)

将zT重新映射到zt后跟当前窗口高度的四分之一和CTRL-Y(向上滚动一行,将光标留在原处).