为什么 vim 使用 hjkl 键作为方向键

初次接触 vi/vim 编辑器的人可能都会有个疑问:用 hjkl 键(作为方向键)控制光标移动是什么鬼?

关于这个问题,以前网络上有一种说法,手指放在键盘上输入时,hjkl 键比方向键距离手指更近,输入效率自然就会更高。这听起来似乎很有道理,然而我最近查了一点资料,却发现真实情况有点让人啼笑皆非。

vim 是从 vi 发展出来的,使用了一样的键位设置,所以一切问题都要追述到 vi 编辑器的发明者 Bill Joy 身上。

在那个时代自然是没有我们现在这么五花八门的强大计算机,Bill Joy 是在一台 ADM-3A 终端机上开发的 vi 编辑器,它就长下面这样。

我们重点关注一下它的键盘。

嗯,这下知道为什么要使用 hjkl 键作为方向键了吗?因为它们上面标有方向箭头啊,不用这几个键用啥?

另外,vim 饱受诟病的使用 Esc 键切换模式的操作(模式切换属高频动作,但现代键盘上 Esc 键太远了,按起来很不方便)也是因为这个键盘布局导致的,看看那时候的 Esc 键离手指多近啊……

最后,从上面的键盘布局图中我们还能发现一个有趣的事情,看看右上角的 HOME 键,发现了什么吗?没错,那时候的 ~HOME 是在一个键上面的,这就是起源于那个时代的 UNIX/Linux 系统中使用 ~ 表示 home 目录的原因。

参考资料:https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys