在vim中,如何在启用换行时通过屏幕线连续滚动?

neu*_*ron 16 vim

我可以通过设置display = lastline来获取窗口底部以显示部分线条

是否有类似的选项允许部分线显示在窗口的顶部?

如果没有此功能,当显示的最顶层文件行被包装到多个屏幕行时,我的vim仍然会向下滚动(向下)超过1个屏幕行.

例如,在以下场景中,当我按CE时,我的vim将向下滚动3个屏幕行.有没有办法让它只滚动1个屏幕行,这样只会隐藏第1行中的前两个单词,但仍会显示以下3个单词?这对于编辑长段文本非常有用.

注意:我指的是整个屏幕的滚动,而不是光标的移动.

------------------
1 abcdefg abcefg
  abcasdfsa sdfsf
  sdfc
2 adfadf
3 adfadf
4 adfadf
------------------

Mer*_*ham 8

我认为不可能完全按照你的意愿行事.

这是我输入时的描述 :help CTRL-E

                                                             CTRL-E
CTRL-E                      Scroll windows [count] lines downwards in the buffer.
                            Mnemonic: Extra lines.
Run Code Online (Sandbox Code Playgroud)

请注意,虽然它表示它正在滚动窗口,但它也提到它在缓冲区中滚动.你真的只是一次滚动一条(包裹)线.

我不认为还有另一种解决方法.

我可以通过设置display = lastline来获取窗口底部以显示部分线条

我认为这display=lastline是一个错误的解决方案 - 你仍然滚动相同的数量,你只是更明显.

解决这个问题的真正方法是禁用包装:

:set nowrap
Run Code Online (Sandbox Code Playgroud)

编辑

一些相关的线程显示"滚动屏幕线"功能正在考虑中,但需要一段时间才能实现:

  • @ldigas:我已经碰到了很多次,所以我不知道究竟有多少边界情况.我认为`display = lastline`部分解决了显示问题,但肯定不是可用性问题. (5认同)