为什么在同一行上使用hjkl键而不是像wasd这样的三角形键来进行视频游戏?

评论

检查vi的Wikipedia页面,其中包含一些古老的Unix机器键盘的图片,其中解释了一些键绑定。

因为vim免于跟上技术进步:3

您可以舒适地将一只手的四个手指放在hjkl键上,并在四个方向上移动光标,而无需前后移动手指。如果您真的考虑过,那么连续四行是唯一符合人体解剖学的光标键布局。问题实际上是其他人如何设法将其弄错。

实际上,不建议将索引放在h上,而应该放在j上(这就是为什么在j键上有一个“乳头”)。这样做的原因是,您将使用b远远多于h并拥有;可访问性在许多编程语言中都很方便(并且有一种转变,您可以使用:在Vim中更加方便)。

顺便说一句,在Unix SE上第二个最受好评的问题中涵盖了该主题。

#1 楼

来自http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/:


当Bill Joy创建vi文本编辑器时,他使用了ADM-3A终端,该终端的hjkl键上有箭头。自然,他重用了相同的键,剩下的就是历史了!




评论


仍然应该在每个键盘上! :)

– albttx
16年8月23日在12:12

现在,您让我想知道制造emacs的人所使用的终端是哪种...

–leeand00
16年8月23日在19:09



@ leeand00:Symbolics LISP机器空间学员键盘。本文明确讨论了键盘的设计如何影响Emacs的设计,并将其与Vi的设计以及其无处不在的Escape键进行了比较,并且Escape非常方便地位于ADM-3A终端的键盘上。好吧,在Space Cadet键盘上,非常方便地找到Control,Meta,Super和Hyper键,以及不少于3个不同的Shift键,它们可以键入8000个以上的字符。

–‐Jörg W Mittag
16年8月23日在19:35

虽然这个答案是正确的,但它会提出问题而不是回答问题:“为什么ADM-3A键盘选择hjkl而不是像ijkl这样更合逻辑的形状?”

–马丁·图尔诺伊(Martin Tournoij)
16年8月24日在14:12



@Carpetsmoker:直到80年代后期upload.wikimedia.org/wikipedia/commons/3/30/…,我们才发明键盘箭头定位逻辑

–雅各布·克拉尔(Jacob Krall)
16年8月24日在14:37

#2 楼

Nobe4的答案很好,并解释了为什么我们很好地使用hjkl。但是,看到完整的键盘真的很有趣,而且当您看到vim的完整键盘设计时,关于vim的许多奇怪事情就变得更加有意义。例如,为什么在如此古怪而又不舒服的地方,vi为什么如此依赖esc键?这就是为什么:



您可以看到,esc是大多数键盘上的选项卡所在的位置。 ctrl是另一个很难触及的按键,但是在此键盘上非常舒适的位置(通常是大写锁定)。

评论


vi是否具有映射?我以为那是后来的发明...

–马丁·图尔诺伊(Martin Tournoij)
16年8月24日在16:27

@Carpetsmoker我是这样认为的,但我不确定。 Vim的:help 没有签名{Vi无此功能}文本,它确实说vi有:map(尽管没有:noremap),所以我很确定vi有领导。即使没有,我也可以想象vi键盘的历史至少会在某种程度上影响vim的设计。

–詹姆斯
16年8月24日在16:36

也很难通过Google找到有关vi的信息,因为大多数结果最终都是关于vim的。

–詹姆斯
16年8月24日在16:37

@DJMcMayhem pubs.opengroup.org/onlinepubs/009696699/utilities/vi.html和roguelife.org/~fujita/COOKIES/HISTORY/1BSD/exrefm.pdf是vi的良好参考(分别是POSIX和历史)。您还可以下载nvi,elvis,vile或ex-vi(ex-vi是历史vi的后代),并查看其功能或说明文件。 vi中没有功能。

–Random832
16年8月24日在18:23

同样,Vim最初是为Amiga(在其通常的[ISO或大回车]位置使用反斜杠)开发的,并且基于Stevie,它是为Atari ST(在过去的右下角使用反斜杠,过去是回车),但显然没有支持:map都可以)

–Random832
16年8月24日在18:25



#3 楼

至于为什么这些箭头印在这些键上……是因为它们可以与控制键一起用于本地光标移动。 Ctrl-H和Ctrl-J(退格和换行)很明显,即使在今天也很容易记忆。 Ctrl-K是“垂直制表符”,但有时用于在pre-ANSI终端上进行反向换行。 Ctrl-L用于无损光标向前的选择可能是基于其键盘位置。

您可能还注意到在键盘图片中的另一个答案中,“ HOME”是在^ / ~键上。当然,Ctrl- ^会将光标移至原处(发送到屏幕的左上角或视情况而定的左下角)。

这些控件映射还用于Wyse终端,Kermit协议并且在某些版本的PC ANSI.SYS中受支持。

来源:



ADM-3A操作手册,第3-5页[ pdf第38页]开始描述控制功能。

其他终端的Terminfo数据库;搜索kcuf1=^Lkcuu1=^K



评论


^ H,^ K –很有启发性,因为从今天起,我将轻松记住^ J向下移动。我从不记得可靠的上下分配。

– Miroxlav
16年8月24日在10:57