将当前显示行移动到 vim 中 window 的顶部 (j : zt = gj : ???)

Move current display line at top of window in vim (j : zt = gj : ???)

ztz<CR> 在正常模式下重绘缓冲区,光标行位于 window 的顶部。 这很方便,但在读取包含 非常 行的文件时毫无价值。

我有 set wrap,所以当我想要 zt 类功能时,有时一行会填满整个显示屏。

有通讯员吗,"redraw the buffer, current display line at top of window"?

Vim对编辑换行的支持有限;除了 gj / gk 的按屏幕行导航之外几乎没有其他支持。最近有人问 similar question。特别是,像 zt<C-E> / <C-Y> 这样的命令是基于 physical 行的。如果相应的命令也适用于屏幕行,那就太好了。我将邀请您为此编写一个补丁(请注意,这不是微不足道的,需要一些关于 Vim 的实现的知识)。

没有那个,你只能尝试效仿这个。我认为按屏幕行滚动的唯一方法是将光标移动到 window 的底部,然后执行 gj.