我试图进入通常建议不使用箭头键而只使用hjkl键的习惯。现在我经常发现自己处于以下情况。我刚输入
someFunction()
并且光标在(
和)
之间处于插入模式。接下来我只需要输入;
someFunction();
并按 esc 完成。按右箭头键可能是最简单的,但开始感到尴尬,需要太多时间来完成操作。另外一些人禁用他们的箭头键以养成不使用它们的习惯。有没有比点击 esc 和 shift-A 更快的东西,或者在这种情况下是最快的右箭头键?
答案 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 .
)<right>
会破坏撤消Vimmers经常切换模式,以便在它们之间切换成为第二天性。将插入模式切换到正常模式通常是一件好事,因为插入模式适用于短脉冲。
一些离别的想法:
<esc>
答案 4 :(得分:2)
谈到在行尾的尾随分号.. 可能人们会因此而恨我,不过我会留在这里:
imap ;; <Esc>A;
map ;; A;<Esc>