Vim将光标移动到下一行的开头

33
在Vim中,是否有按键将光标移动到下一行的开头位置? j可以将光标移动到下一行对应当前位置的位置。我正在寻找一个单独的按键,无论当前行的光标位置如何,都可以将光标移动到位置0的位置。
2个回答

56
< p > + 命令会移动到下一行的第一个非空字符([count] 表示次数),如果该行没有缩进,则此命令满足您的要求。但是如果该行有缩进,则您可以使用 +0j0 命令进行跳转。


2
"<cr>"和"+"是相同的动作,但更加方便。当录制宏时,这个动作非常棒。 - Peter Rincker
@PeterRincker 谢谢。您知道vim是否允许与文本行相比,使用屏幕行实现同样的功能吗?我希望g+可以做到这一点,就像gj可以将您带到下一个屏幕行,g$可以将您带到屏幕行的末尾等等,但在这种情况下,它(g+)似乎具有其他功能... - Lavya
1
@Lavya 理论上,您可以使用 gjg^ 一起创建 "g<cr>" 映射,但我认为 g^ 的行为不完全符合我的预期。请参见 :h g^。例如:nnoremap g<cr> gjg^g+g- 是撤消导航命令,非常有帮助。我建议不要覆盖它们。有关更多信息,请参见 :h g+:h undo-tree。撤消树非常酷,特别是与持久性撤消配对使用时(请参见 :h persistent-undo)。 - Peter Rincker
++0在Sublime中无法使用。j0对我有用。 - winklerrr

5

按下+键可以将光标移动到一行的开头。如果该行没有缩进,那么这只会将光标移动到该行开头的第一个非空字符处。如果您想无论有无空格都要跳转到该行的第一个字符,则可以使用j0

如果您需要更多有关移动光标的帮助,可以查看以下资源:http://vim.wikia.com/wiki/Moving_around


你为什么要修改你的答案来匹配我的?! - Ingo Karkat
@IngoKarkat 对不起,我没有意识到问题是“转到下一行的开头”,当我第一次回答时,我改变了它以实际回答问题。如果你想的话,我可以删除这个回答。 - EvergreenTree
没问题。您的回答中仍有有用的链接,所以请保留它。 - Ingo Karkat
@EvergreenTree 谢谢!你知道关于屏幕行是否也可以实现同样的效果吗? - Lavya
1
gjg0 可以解决问题,因为 gj 可以向下移动一行显示,而 g0 可以回到该行的第一个字符。如果您经常使用它,创建一个映射可能是个好主意。 - EvergreenTree

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