vim-在插入模式下不使用箭头键移动光标

vim-在插入模式下不使用箭头键移动光标,vim,Vim,我试着养成经常被推荐的习惯,不使用箭头键,只使用hjkl键。现在我经常发现自己处于以下情况。我刚打过字 someFunction() 光标处于插入模式,介于(和)之间。接下来我只需要键入 someFunction(); 然后按esc键完成。按向右箭头键可能是最容易的,但开始感到尴尬,完成动作需要太多时间。此外,有些人禁用箭头键,养成了不使用箭头键的习惯。在这种情况下,是否有比按esc键和shift-A键更快的动作,或者右箭头键最快?我认为Control ol(小写L)比escshift-A键

我试着养成经常被推荐的习惯,不使用箭头键,只使用hjkl键。现在我经常发现自己处于以下情况。我刚打过字

someFunction()
光标处于插入模式,介于
之间。接下来我只需要键入

someFunction();

然后按esc键完成。按向右箭头键可能是最容易的,但开始感到尴尬,完成动作需要太多时间。此外,有些人禁用箭头键,养成了不使用箭头键的习惯。在这种情况下,是否有比按esc键和shift-A键更快的动作,或者右箭头键最快?

我认为Control ol(小写L)比escshift-A键和右箭头键更快。Control-o允许您从插入模式执行一次正常模式按键。

为什么您的光标会在
之间?如果您键入它,它不应该在
之后吗


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

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

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
f1 f1 f1 f1
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()4
foo()5
foo();6;6 A 6 l 6
;      7    ;      7

在这种情况下,您描述的绝对最快的方法是在插入模式下发现
键。此方法与Vim方法相反,并破坏了以下Vim功能:

  • 重做或使用
    命令。我发现通常最好更改您的工作流,以确保
    命令正常工作。(请参阅
    :h.
  • Vim有一个chunky undo,因为它的模式。这意味着每个chunk通常是一个操作,使得在undo状态之间的导航更加容易。在许多情况下,使用
    会破坏undo
Vimmers频繁地切换模式,因此在它们之间切换成为第二天性。从插入模式切换到正常模式通常是一件好事,因为插入模式用于短脉冲

一些离别的想法:

  • 学会爱
  • 插入模式用于短突发文本
  • 正常模式称为正常模式,因为这是您通常处于的模式
  • 如果这是一个常见的问题,那么做一个映射或缩写
  • Tim Pope的插件或某种自动配对插件可能有助于使用括号
  • 与Vim合作而不是对抗它。又名:

谈到行尾的分号。。 也许人们会因此恨我,但我还是把它留在这里:

imap ;; <Esc>A;
map ;; A;<Esc>
imap;;A;
地图;

很好的建议。在我的例子中,应该是ctrl-o和a,而不是i,
l
(参见括号中的
这是小写的l
l
向右移动一个字符。这是值得思考的。我喜欢所呈现的事实。我会尝试去感受它在实践中的效果。我得到了一些好的建议。我选择这一个是因为它看起来最简单,但也会尝试其他人去感受它并了解更多。