在vim中,为什么用'j'表示向下,用'k'表示向上?


68

我已经使用vim多年了,从未真正考虑过它。我的一个朋友问为什么,要注意的是,在我们的文化中,左通常映射为上,而右通常映射为下,从而使vim键向后移动。我知道它们位于主行上,这意味着您不必将手指移到任何地方都可以敲击它们,但这完全是另一回事。基本上,我的问题是:有人知道为什么赋予了这些键其当前的用途吗?如果您还可以向我指出有关该决定的一些文档,那就太好了。


6
好问题。我经常对此感到疑惑,但缺乏勇气去问。
Goulash亲王

4
用克罗克福德的话来说,“看起来一旦某个愚蠢的东西进入,它就会花很长时间。” :-) developer.yahoo.com/yui/theater/video.php?v=crockonjs-2
Courtney Christensen

5
在您看来,为什么左通常映射到上,右通常映射到下。我以前从未真正考虑过,但我认为应该是相反的。可能纯粹是因为我是右撇子(但我们大多数人都是右撇子),所以,也许像右图一样,向上感觉更积极。嗯 我只是对为什么您的自然反应是反过来感到好奇。但是,这当然不是讨论的地方(我想知道psychology.stackexchange可能在哪里-如果存在这样的地方)。
tjm 2011年

4
@tjm,我同意在从左到右阅读的意义上“右感到沮丧”。一旦您到达一行的末尾,下一个字符始终是“向下” ...只是一个想法。母语从右到左阅读的人会有不同的感觉吗?
Courtney Christensen

2
很抱歉对这样的旧线程做出响应,但是我相信j认为应该提高它的原因是双重的。1)您的中指放在j上,对于大多数人来说,j是您的最长的手指,因此比其他人更朝上。2)大多数人习惯于使用光标键,光标键在一个光标和另一个光标之间上下排列,这意味着除非您进行某种形式的手指杂技,否则中指会同时充当上下手指,因此当您使用四指向上只是感觉很奇怪。
DRendar '17

Answers:


93

答案在vi维基百科条目中。Bill joy编写了ex的可视模式-最终成为vi的前身vi-使用了Lear Siegler ADM3A终端,在该终端上,H,J,K,L键映射到左,下,上,右,它是从那以后。

这是键盘布局:

在此处输入图片说明

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

  • Q的左边:退出键-比今天的键盘要好一些,因此是在普通模式和插入模式之间切换的理想选择。
  • 右上角:“ Home”键是波浪号(〜)的两倍,波浪号(〜)随后成为Unix用户主目录的简写。

3
啊,废话。你打了我一分钟
abcd

54
现在好了,我想问题是为什么ADM3A为什么使用J来降低功耗。
geowa4 2011年

1
我希望他们最后能移除大写锁定。
尼尔·G

16
@ geowa4,J可能已关闭,因为Ctrl + J是ASCII换行符。ADM3A终端仅比电传打字机聪明一点,因此类似的巧合可能简化了实现过程。请注意,Ctrl + H是ASCII退格键,对应于左...
RBerteig

我见过有人建议重新映射大写锁定键以逃脱,以恢复使用的便利性:)
Jack Simpson

23

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


3
为什么-1这样?这很有趣,可以回答问题。

17
另一种助记符是j具有下降符k具有上升符
hammar 2011年

14

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


一个合理的故意巧合WRT上述ADM3A终端布局的设计
interestedparty333

2

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


1
“使向下键先于向上键”我不确定您的意思是“先进入”,因为我看不到键盘的方向感,但是我认为我们同意食指比中指更容易。因此,使用几乎总是在食指下方的键向下滚动(在文件中导航的最常见方向)是有意义的。
JoL

@jlmg对我来说,如果AB的左侧,那么自然而然地说A排在第一,B排在后。而我更喜欢把钥匙我按第一更频繁地在左手,而在右边。这对我来说更自然,更舒适。
sunquan

2

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

h键在左侧并向左移动。

l键在右侧并向右移动。

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


1

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


问题实际上是关于为什么在这种布局中使用J表示向下,而K表示向上(为什么不K表示向下?)。
sunquan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.