VIM:VIM是否会用ESC替代CTRL键的使用?

18

通常会宣传使用VIM可以减少手离开主键区的需要。然而,似乎我总是在伸手去按ESC键,而不是CTRL键。
注意:我是一个新的VIM用户,正试图从记事本(Windows)迁移到VIM。我提出这个问题,以防我的使用或理解VIM哲学上有什么问题。


12
很多人会将大写锁定键映射为Esc键(如果你想保留大写锁定键,可以将它们交换)。这样做改变了我的生活。 - mqsoh
4个回答

44

当 vi 最初编写时,是在这个键盘布局上编写的:

enter image description here

请注意,Esc 键位于大多数现代键盘布局中 Tab 的位置,因此按下它不需要过多的伸展。这也解释了为什么在 vim 中 hjkl 是正确的“箭头”键,以及为什么 vim 中的一些其他常见键可能看起来像是不寻常的选择。


哇,我以前看过这个,但现在才注意到它让“Esc”键变得更好了,但却把“:”键变得几乎和现在的“Esc”一样糟糕。真是让人惊讶。 - underscore_d
那个布局的名称是什么? - airstrike
1
根据维基百科,这是Bill Joy用来编写vi的机器:https://en.wikipedia.org/wiki/ADM-3A。我不确定是否有此布局的软件版本可用,因为其键盘与我见过的几乎所有键盘在物理上都不同。 - Randy Morris

12

我几乎总是使用 Ctrl+[ 而不是 Esc。这是一种相当容易的键盘组合方式。唯一的例外是当我惊慌失措并需要连续按下十次“逃脱”键时。


1
还可以考虑使用 Ctrl+C - ib.
3
据我所知,Ctrl+C 在某些情况下会漏掉一些内容,比如无法触发“插入完成”事件。另外据我所知,Ctrl+[ 可以正确处理这些情况。此外,使用 Ctrl+[ 的输入方式更为简便! - underscore_d

3
ESC键仅在从插入/替换模式切换到正常模式时使用。在正常模式下,您会花费大部分时间 - 搜索、滚动、阅读、剪切/复制/粘贴(或者按照vim术语,删除/复制/粘贴)等等。
虽然ESC键经常使用,但它不应该像记事本中的CTRL键一样频繁使用。但是,还有几种避免按ESC键的替代方法:http://vim.wikia.com/wiki/VimTip285,以及将Caps Lock键用作ESC键的方法:How to map CAPS LOCK key in VIM? 就我个人而言,我并不觉得这是个问题,因为我的ESC键是最左边的顶行键;我可以毫不费力地按下它,并在盲目状态下将手放回它们的常规位置。我的手腕甚至没有从笔记本电脑上的位置移动 ;)

这可能会导致非常严重的RSI:(有些人确实没有这样的问题,但对于我来说,扭曲手腕去按ESC键是灾难性的。 - Jan Warchoł
@JanekWarchoł 这就是人们重新映射大写锁定键的原因之一。虽然我还没有遇到过问题,但这可能有助于我将手放在非标准位置上:在QWERTY键盘上,我的左手手指通常放在shiftawd上,或者在相同布局的附近键(如aw3r)的某些变体上。所有重要的键都保持接近,而esc键更近,需要的扭转也更少。 - Izkata
有趣的方法。好吧,我希望你永远不会得到任何RSI :) - Jan Warchoł

3
正如lzkata所指出的,它只用于从插入模式切换到正常模式。根据你正在进行的工作,你可能会更频繁地来回切换。然而,随着你在vim上积累经验,你会发现自己更少地切换模式。(如果你要对许多行上的不同类型进行小的编辑,并且终端支持箭头键,则可以在插入模式下使用箭头键,但通常应尝试寻找其他正常模式的方式进行常见编辑 - 快速导航的t,T,f,F,G等)。

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