我最近发现,Vim的Ctrl+E和Ctrl+Y快捷键可以分别用一行步骤上下移动屏幕,而不需要移动光标。
你知道有什么命令可以让光标留在原地,但会移动屏幕,让光标所在的行变成第一行吗?(最后一行有一个命令将是一个很好的奖励)。
我可以通过手动按下适当次数的Ctrl+E(或Ctrl+Y)来实现这一点,但有一个命令可以以某种方式直接做到这一点会更好。
什么好主意吗?
我最近发现,Vim的Ctrl+E和Ctrl+Y快捷键可以分别用一行步骤上下移动屏幕,而不需要移动光标。
你知道有什么命令可以让光标留在原地,但会移动屏幕,让光标所在的行变成第一行吗?(最后一行有一个命令将是一个很好的奖励)。
我可以通过手动按下适当次数的Ctrl+E(或Ctrl+Y)来实现这一点,但有一个命令可以以某种方式直接做到这一点会更好。
什么好主意吗?
当前回答
我很惊讶没有人使用scroll - off选项,该选项将光标保持在页面中间。 试试:
:set so=999
这是Vim wiki上第一个推荐的方法,效果很好。
其他回答
我在过去使用过这些快捷键(注意:分开的键击,即点击z,放手,点击后续键):
Z t…或者…Z输入——>移动当前行到屏幕顶部
Z Z…或者…z。——>将当前行移动到屏幕中央
Z b…或…Z -——>将当前行移动到底部
如果不是很明显:
“enter”表示“返回”或“enter”键。
. 表示DOT或“句号”键(.)。
-表示连字符键(-)
无论如何,z避免了保存和关闭Vi的危险,因为如果打开了大写锁,则不小心键入ZZ。
更多信息::help scroll-cursor
Vim要求光标始终位于当前屏幕上,但是,您可以将当前位置作为书签滚动,然后返回到您所在的位置。
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
你可能会发现“相对于光标滚动Vim,自定义映射”的答案很有用。
您可以使用该问题的ScrollToPercent(0)来完成此操作。
Zz -移动电流线到中间 屏幕上的 (小心zz,如果你不小心打开了Caps Lock,你会保存并退出vim!) Zt——移动电流线 到屏幕的顶部 Zb -移动 当前行到底部 屏幕
当使用Ctrl+D, Ctrl+F, Ctrl+B, Ctrl+U, G, H, M, L, gg时,将光标留在同一列
您应该定义以下选项:
:set nostartofline