Vim:只滚动当前行

Vim: Only scroll the current line

我希望 vimnano 那样水平滚动,只滚动当前行,而不是整个屏幕。

我试过 nowrapscrolloff 设置,但没有成功。

这里有一些截图(光标在长行的末尾)来解释我自己。

纳米:

Vim(换行):

Vim(现在换行):

谢谢!

不,Vim 无法做到这一点,而且我认为很难以不矛盾或不混淆用户的方式实现这一点。需要有一个指示器(如横向滚动)表明只有当前行被滚动。同样在 Vim 中,有几个命令(如 j / ki_CTRL-Y / i_CTRL-E)在上面/下面的行中引用同一列。部分滚动的视图状态会使它们难以使用。

就是说,您可以通过 hack 来实现这一点:折叠线的 foldtext 不会水平滚动。因此,如果您通过自定义 'foldexpr' 折叠每一行(当前行除外),将折叠文本设置为该行的文本,并自动关闭所有周围的折叠,您将得到这个。但是,由于您将失去语法突出显示和 "normal" 折叠,因此这更多的是为了演示而不是实际的解决方案。