126

长期使用 vim 的用户,您是保持手指打开jkl;还是hjkl处于正常模式?

标准的触摸打字告诉我们右手的起始位置,食指在j键上,所以你的手指在jkl;

但是标准的 vim 动作键是hjkl.

10 多年后我又回到了 vim 中(天哪,当我不注意时我变老了)并且发现自己被吸引到hjkl......但这使得输入右上角的字母、大括号等变得更加困难。我'想训练自己现在使用最有效/务实的方法,而不必以后重新训练。

长期的铁杆 vim 用户,最佳实践是什么?


笔记:

  1. 与触摸打字员如何在 vi 中导航有更大的重叠?
  2. 我认为这通过了“主观”测试,因为它是关于刻意培养一种无意识的最佳实践,而不仅仅是人们的偏好
4

5 回答 5

133

我认为这jkl;实际上是 vi 更合适的用法。一方面,h真的l没那么重要。w, e, 并且b对于水平导航更有用。作为奖励,;如果语言需要,很容易理解。较弱的手指k会受伤,并且您不需要最强的手指在 上h,当它应该在j可能是四个中最常用的时。

于 2011-07-14T19:05:06.220 回答
18

介绍

前两种解决方案都不是 100% 令人满意的。我提出了第三种方式,一种结合了两全其美的方式

我的建议:“上下左右”

保持上/下它们所在的位置,然后左右制作第三和第四根手指

然后,为了避免覆盖基本的 Vim 特性: 扔掉任何以前的东西到现在空的h按钮

作为一个可爱的奖励,“ l ”键现在代表“ left ”;)

noremap lh
noremap ; l
noremap h ;



之前的“亚军”,他们都使用“左下上右”布局


选择 1:“hjkl”

@alternative 的建议。键绑定保持默认(hjkl),右手保持在主行(jkl;

  • 优点:
    • j(向下)k(向上)停留在你的主要 2 个手指上,它们应得的
  • 缺点:
    • 你必须伸手去拿h(左)。即使这不像w,e,b那样使用,它仍然是一个该死的箭头按钮,并且在主排上会很好
    • 基本上:所有 4 个手指都不会自然地放在箭头按钮上。这让我的手感到困惑


选项 2:“jkl;”

将这 4 个绑定滑过 1 个,使它们位于主行:

地图;l
noremap lk
noremap kj
noremap jh

  • 优点:
    • 没有手指混乱;所有的箭头都自然地在手指下
  • 缺点:
    • 正如@alternative 所说,上/下位于第二根和第三根手指是非常“非最佳”的
    • 同样,最强的手指在左边也是浪费
于 2013-03-11T03:14:07.260 回答
13

我以正常的打字方式将手放在主排上。我很少使用 h 键来移动,因为向左移动一个空格通常不是一种有效的移动方式(并且并不真正符合 Vim 的本质)。

于 2011-07-14T19:06:30.203 回答
8

我理解,这hjkl是出于历史原因使用的(即这就是 vim 使用 hjkl 键作为箭头键的原因)并且它不是基于任何人体工程学原理。

我个人更喜欢遵循​​i3 窗口管理器推荐的方法,如 FAQ 中解释的为什么默认配置使用 jkl;而不是hjkl?是符合人体工程学的选择。

i3 使用jkl;这些键是因为这些键构成了您在触摸打字时右手下方的“主行”。

vim 将 hjkl 重新映射jkl;

于 2013-04-05T09:26:22.067 回答
4

虽然我理解 Vim 的理念,即在主行中提供所有运动,但我发现hjkl这与直觉相反。我认为一张更理智的地图将是一个类似 wasd 的设置ijkl

    nnoremap j h
    nnoremap k j
    nnoremap i k

我发现这很容易自然地导航。

j:left
i:up
k:down
l:right

对于切换插入/正常模式的进/出,我个人使用,Alt-e因为我几乎总是使用 Gvim,不必担心某些终端与 Alt 有问题。

    nnoremap <A-e> i
    inoremap <A-e> <esc>l
于 2014-08-24T13:13:16.243 回答