我这几天在和学习使用 Vim ,并且试着用平铺窗口管理器来管理窗口。 发现默认的调整浮动窗口方向的快捷键 UIOP 这四个就是按照左上下右这种符合直觉的方式来排布的。 当然,HJKL 还是按照左下上右来排布。
很好奇这一点,为什么要使用一个反直觉的 JK 设计。 我想到的理由是 J 对应的是人的食指,而向下的操作在实际使用过程中使用的频率更高。
AI 的回答是: Vim 编辑器中的键位映射,尤其是 h, j, k, 和 l 用于光标移动,是基于历史原因设定的。j 袌似字母 j 的下降形状,被用于向下移动。
vim 确实可以按照自己的逻辑改成 J 对应上而 K 对应。只是想搞清楚这个历史原因的来由。
1
iorilu 322 天前
都可以改的啊, 你可以改成你要的, 试试看好不好用
|
2
McZoden 322 天前
1. 大多数人,食指和中指,比无名指灵活
2. *一般情况下*,向上和向下的操作频率,*可能* 会高于向左和向右 3. 正确的指法下,食指默认放在 j 上面,中指默认放在 k 上面 4. 和“j” 褒姒字母 j 的下降形状,无关 综上,最多操作的向上向下移动,映射到了食指和中指默认放置的按键上,即,j 和 k |
3
littlewing 322 天前
@McZoden 你这等于没回答,楼主想问的是为啥不是 j 向下,k 向上
|
4
vcn8yjOogEL 322 天前 3
Vi 原作者使用的 ADM-3A 终端将 HJKL 作为箭头键使用, 因此 Vi 和它的继任者都沿用了这个布局
参考: https://en.wikipedia.org/wiki/ADM-3A#Legacy |
5
jayeli 322 天前
因为 J 和 ↓ 长得比较像 (乱说的
|
6
xiangyuecn 322 天前
首选:不选 j 当做向下,就选 f 当做向下,再不济用空格键也行,别人敲一下 vi 能敲 1.5 下😂
|
7
McZoden 322 天前
还有一个思路,在以前的 tty 时期,也就是一台大型机配许多台远程终端的时候
ctrl j ,是另起一行的快捷键,也可以作为命令输入完毕后的回车 如果 vim 在这之后出现,那有可能是沿用了这个 j 向下 其实现在 linux 大多数终端下,ctrl j ,也是和回车一样的表现 |
8
ns09005264 322 天前
不知道历史缘由,个人觉得向下移动比向上移动频繁,而食指比中指更灵活,强强联合。
|
9
cdlnls 322 天前
不知道为啥这么设计,但是不得不说,适应了之后,这套键位确实舒服。可能是向下使用的频率更高吧,加上正好食指也放在 J 上,H L 对应左右,也是相当有趣的,还有就是,H 需要移动手指,正好向左移动也是一个低频操作。
感觉设计这个键位的人也是个人才,它没有采用 WASD 这样的上下左右。 |
10
Dropless 322 天前
|
11
James369 322 天前
要么 J 要么 K ,按错 J 就换 K ,按错 K 就换 J 。毫无压力,毫无记忆
|
12
muxinqi 322 天前
我一开始也不习惯,但是后来自己慢慢合理化了,用的下面这个步骤:
1. 把右手食指、中指、无名指放在方向键上,就假装你在玩跑跑卡丁车,记住哪个手指在按上键。 2. 把右手放回至键盘区域一字排开,按照打字习惯,右手食指放在字母 J 上,看看刚刚按上键的手指,现在在哪里。 当然如果 I J K L 分别对应 ⬆️ ⬅️ ⬇️ ➡️ 的话,我会更习惯(跟方向键体验一样了),但是感觉调整字母 I 的映射,对肌肉记忆改动太大了,如果需要临时用别人电脑就不习惯了。 |
13
syfless 322 天前
可能是大部分人按 ⬇️ 的频率比 ⬆️ 多,然后中指比无名指发达
|
15
passive 322 天前 via Android
以前键盘就是这样。即使小键盘区的方向键成为现在这种
上 左下右 形状也才没几年。以前键盘上都是排成一排, 上下左右、左下上右、左上下右…各种组合,每个厂家都不一样 |
16
juggtt213 322 天前
点进来这个帖子的时候我也感觉大多数人按下的频率更高。但是又想了一下,如果是用浏览器的 vim 插件,确实按 j 的频率更高,但是用 vim 编码的时候,可能写错了要改的时候按“上”的频率反而会更高一些,要是编码顺利的话换号是用回车
|
17
RikkaW 322 天前
古时候的键盘还不是现在这样的
上 左下右 |
18
smdbh 321 天前
JIKL 更好?
|
19
Biluesgakki 321 天前
你代码是往下写的 不是往上写的 j 分配个更常用的下很合理
|
20
BeijingBaby 321 天前 3
|
21
loveDiu4ever 321 天前
https://vi.stackexchange.com/questions/42426/why-did-vi-use-hjkl-instead-of-jikl/42428#42428
看这个回答 1. ADM-3A 终端仿真设计的问题 2. 沿用了最早打字机的设计 |