【问题标题】:In Vim , why is 'j' used for down and 'k' for up?在vim中,为什么'j'用于down而'k'用于up?
【发布时间】:2011-09-27 01:56:14
【问题描述】:

我已经使用 vim 很多年了,但从未真正考虑过它。我的一个朋友问为什么会这样,注意到在我们的文化中,左通常会映射到上,而右会映射到下,使 vim 键向后。我知道它们在主排,这意味着您无需将手指移动到任何地方即可击打它们,但这完全是另一回事。基本上,我的问题是:有谁知道为什么这些钥匙被赋予了它们目前的用途?如果您也可以向我指出有关该决定的一些文档,那就太好了。

【问题讨论】:

  • 好问题。我经常想这个,但没有勇气问。
  • 引用 Crockford 的话,“似乎一旦有愚蠢的东西进来,就需要很长时间才能把它弄出来。” :-) developer.yahoo.com/yui/theater/video.php?v=crockonjs-2
  • 为什么在您看来左通常映射到上,右到下。我以前没有真正想过,但我觉得应该是相反的。可能纯粹是因为我是右撇子(但我们大多数人都是),所以,也许像右撇子这样的感觉更积极,就像向上一样。唔。我只是好奇为什么你的自然反应是反过来看。不过,这当然不是讨论的地方(我想知道,psychology.stackexchange 可能在哪里——如果这样的地方存在的话)。
  • @tjm,我同意我们从左到右阅读的意义上的“右感觉低落”。一旦你在一行的末尾,下一个字符总是'down'......只是一个想法。母语从右到左阅读的人会有不同的感觉吗?
  • 很抱歉回复这么老的帖子,但我相信 j 感觉应该向上的原因是双重的。 1) 你的中指放在 j 上,对于绝大多数人来说,j 是你最长的手指,因此比其他手指更“向上”。 2) 大部分人习惯使用上下左右排列的光标键,这意味着除非你做某种手指杂技,否则中指兼作上下,所以当你再用你的第四根手指上去感觉很奇怪。

标签: vim key-bindings


【解决方案1】:

答案在wikipedia entry for vi。比尔·乔伊(Bill Joy),他编写了 ex 的视觉模式——最终成为 vim 的前身 vi——使用了一个 Lear Siegler ADM3A 终端,在该终端上,H、J、K、L 键映射到左、下、上、右——它就是从此以后。

这是键盘布局:

关于 ADM3A 布局的其他几点注意事项:

  • Q 的左侧:转义键 - 比现在的键盘更方便,因此是在正常模式和插入模式之间切换的不错选择。
  • 右上角:“Home”键兼作波浪号 (~),后者随后成为 Unix 用户主目录的简写。

【讨论】:

  • 啊废话。你打败了我一分钟。
  • 现在我想问题是为什么 ADM3A 使用 J 表示向下。
  • 我希望他们最终能移除大写锁定。
  • @geowa4,J 可能已关闭,因为 Ctrl+J 是 ASCII 中的换行符。 ADM3A 终端只比电传打字机智能一点,所以像这样的巧合可能会简化实施中的某些事情。请注意,Ctrl+H 是 ASCII 退格,对应于 left...
  • 我看到有人建议将大写锁定键重新映射为转义键以恢复易用性:)
【解决方案2】:

vimtutor 提供了“J”看起来有点像向下箭头的助记符,尽管这可能是也可能不是选择它的最初原因。

【讨论】:

  • 为什么-1这个?这很有趣并且回答了问题。
  • 另一种助记符是j 有一个descenderk 有一个ascender
  • 如果你读了一个段落,H 会“回到”你已经读过的内容,L 会指向接下来的内容,所以我发现 J 仍然应该“返回”,向上一行。
【解决方案3】:

这是一个完全的猜测,但是: Ctrl+J 字符是“换行”字符,在传统的 TTY 上它向下移动一行,提供助记符。在 Qwerty 键盘上,K 就在它旁边,在初始位置时右手第二常用手指的下方。

【讨论】:

  • 一个似是而非的故意巧合 w.r.t.前述ADM3A端子布局设计
【解决方案4】:

从用户体验的角度来看,打开文件后,您总是先下移,而下移通常是更频繁的操作。由于从左到右是我们大多数人的自然方向,因此将您首先执行或更频繁执行的任务与左侧的键相关联是有意义的。您可以尝试切换 2 个键并尝试判断哪种方式更好。对我来说,羽绒的“J”更自然舒适。

【讨论】:

  • “让向下键先于向上键”我不确定您所说的“先于”是什么意思,因为我在键盘上看不到方向感,但我认为我们同意用食指敲击一个键比用中指敲击更容易。因此,使用几乎总是在食指下方的键是有意义的,这是在文件中导航的最常见方向。
  • @jlmg 对我来说,如果A在B的左边,说A在前,B在后是很自然的。我更喜欢将我按更频繁的键放在左手而不是右手。这对我来说更加自然和舒适。
【解决方案5】:

如果您在终端中运行vimtutor,它会解释它。它说:

h 键在左边,向左移动。

l 键在右边并向右移动。

j 键看起来像一个向下箭头。

【讨论】:

    【解决方案6】:

    我一直以为是因为在 DVORAK 布局上,j 和 k 也是相邻的。在 DVORAK 和 A/QWERTY/Z 上都没有多少键具有此属性

    【讨论】:

    • 问题实际上是关于 为什么在这种布局中使用 J 向下和 K 向上(为什么不使用 K 向下?)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    相关资源
    最近更新 更多