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

kd3sttzy  于 2022-11-11  发布在  其他
关注(0)|答案(5)|浏览(453)

我正在努力养成经常被推荐的习惯,不使用箭头键,只使用hjkl键。现在我经常发现自己处于以下情况。

someFunction()

并且光标处于()之间的插入模式。

someFunction();

然后按esc键完成。按右箭头键可能是最简单的,但开始感觉很笨拙,而且完成操作需要太多时间。另外,有些人禁用了他们的箭头键,养成了不使用它们的习惯。有什么比按esc键和shift-A键更快的吗?或者在这种情况下,右箭头键是最快的吗?

k5ifujac

k5ifujac1#

我认为Ctrl-oa比escshift-A和右箭头键更快。Ctrl-o可以让你从插入模式执行一次普通模式击键。

hrirmatl

hrirmatl2#

为什么您的光标会在()之间?如果您键入它,它不应该在)之后吗?
如果它是通过vim插件delimitMate自动关闭的,你应该做的是输入),即使插件自动完成了。插件会注意到你关闭了括号对,并将光标移到自动关闭的)后面。

9rnv2umw

9rnv2umw3#

自动关闭不会保存按键,所以,如果你不打算在它们之间放置任何东西(至少现在),不要自动关闭你的括号。

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
7gcisfzg

7gcisfzg4#

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

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

Vimmers切换模式如此频繁,以至于在它们之间切换成为第二天性。从插入模式切换到正常模式通常是一件好事,因为插入模式是用于短突发的。
临别感言:

  • 学着去爱
  • 插入模式用于短文本突发
  • 正常模式之所以称为正常模式,是因为这是您通常所处的模式
  • Your problem with Vim is that you don't grok vi.
  • 如果这是一个常见的问题,则进行Map或缩写
  • Tim Pope的Surround.vim插件或某种自动配对插件可能会对您的括号有所帮助
  • 与Vim合作,不要反对它。又名:Sharpen the saw
zzlelutf

zzlelutf5#

说到尾随分号的行尾..也许人们会讨厌我这样做,但我会把它留在这里:

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

相关问题