vim - 在没有箭头键的情况下将光标移动到插入模式

时间:2014-08-12 19:19:29

标签: vim

我试图进入通常建议不使用箭头键而只使用hjkl键的习惯。现在我经常发现自己处于以下情况。我刚输入

someFunction()

并且光标在()之间处于插入模式。接下来我只需要输入;

someFunction();

并按 esc 完成。按右箭头键可能是最简单的,但开始感到尴尬,需要太多时间来完成操作。另外一些人禁用他们的箭头键以养成不使用它们的习惯。有没有比点击 esc shift-A 更快的东西,或者在这种情况下是最快的右箭头键?

5 个答案:

答案 0 :(得分:8)

我认为 Control-o l (即小写L)比 esc shift-A 和右箭头键。 Control-o 允许您从插入模式执行一个普通模式击键。

答案 1 :(得分:6)

为什么您的光标位于()之间?如果你输入它,不应该在)之后吗?

如果它是通过vim插件delimitMate自动关闭的,那么你应该做的就是键入),即使插件已自动完成。该插件会注意到您正在关闭括号对,只需在自动关闭后)移动光标。

答案 2 :(得分:3)

自动关闭不保存按键操作,因此,如果您不打算在它们之间放置任何内容(至少现在),请不要自动关闭括号。

f       1    f        1    f      1    f      1
fo      2    fo       2    fo     2    fo     2
foo     3    foo      3    foo    3    foo    3
foo(    4    foo()    4    foo()  4    foo()  4
foo()   5    <right>  5    <Esc>  5    <C-o>  5
foo();  6    ;        6    A      6    l      6
                           ;      7    ;      7

答案 3 :(得分:2)

在这种情况下,您描述的绝对最快方式是在插入模式下发现<right>键。这种方法与Vim方式相反,并且违反了Vim特性:

  • 重做或.命令。我发现最好通常改变您的工作流程以确保.命令有效。 (见:h .
  • 由于其模式,Vim有一个大块的撤销。这意味着每个块通常是一个动作,并使撤消状态之间的导航更容易一些。在许多情况下,使用<right>会破坏撤消

Vimmers经常切换模式,以便在它们之间切换成为第二天性。将插入模式切换到正常模式通常是一件好事,因为插入模式适用于短脉冲。

一些离别的想法:

答案 4 :(得分:2)

谈到在行尾的尾随分号.. 可能人们会因此而恨我,不过我会留在这里:

imap ;; <Esc>A;
map ;; A;<Esc>