Vim的命令行窗口是否可以配置为*不*移动缓冲区的内容?

4
当打开vim的命令行窗口时 (:help command-line-window), 它会将缓冲区内容向上移动与其高度相等的距离。是否有任何方法可以告诉它不要进行移动?以下是我所指的示例:

recording of vim buffer shifting

理想情况下,命令窗口应该打开,只需要覆盖底部几行即可。
我的假设是命令行窗口是一个真正的分割,因此可能无法“覆盖”其他分割(主缓冲区)。但还是问一下不会有坏处。
1个回答

3
您可以使用以下方法更接近目标地点:

使用某些

:set scrolloff=N

在这种情况下,将其设置为5将近似于所需的效果: enter image description here 我知道这有点作弊(我的主窗口更大),而且有点琐碎(它使用您特定的起始视图信息来保持显示的行)。然而,当您按q:时,您可能会将其脚本化以“神奇地”工作。
在完美的世界中,我会使用:mkview!(或等效的脚本命令)和映射来保存和恢复窗口位置。然而,命令窗口很特殊,并且不允许切换窗口,因此我认为这是不可能的。

1
(旁注,违反 SO 规则:你在右上角有什么按键显示小部件?太喜欢了) - mwcz
嗯,有趣。我尝试过这个,但没有任何效果。我已经在我的vimrc中设置了so=3。对于一个相当大的窗口,除非它可以设置为50%,否则我不太明白so如何帮助。 - mwcz
1
@mwcz 我想我提到了这一点:“而且它很棘手”。因此,我的回答仍然是:“你可以脚本化这个想法”- 换句话说,在 :set so=<N> 命令中,<N> 可以根据当前最顶部的行进行动态评估...(哦,只需按“编辑”或查看历史记录、查看源代码来窥探我的标记 :)) - sehe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接