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

这个问题纠结了很久,而且为什么用esc 键作为模式切换键呢?
求大神解答?

4 个回答

正如前面两位说的那样,这多少有点历史的原因,当时并没有上下左右的方向键,而且从vi这样的文本编辑器设计角度出发,操作的时候手也不应该离开得太远,因此如果当时有上下左右键,跟现在一样布局的话,我觉得vi的作者也会选择相应的别的四个键做为上下左右键的。
从原理上讲,只要方便使用,中间那一行的字母配合上下两行的字母都可以做为上下左右键,而且也应该分布在同一侧,因为上下左右键是互斥的,在同一侧在一定程序上避免了快速输入时同时摁到上下或者左右的情形。
使用HJKL而不是别的键,这应该是上面的分析加上作者的一些个人喜好得出的。在玩windows下的一些游戏你也可以看到,他们是选择WSAD做为上下左右键的。
esc键的许,AnsonChan的分析应该就是正确答案了。
刚又想起选择HJKL的另一些原因,补充一下。在vi出现前,已经有一些行编辑器存在了,他们也用了一些键来实现一些功能,有不少约定俗成的用法,为了让程序员平滑过渡到vi,那些键的功能都应该保留,而且vi本身也会使用一些键去实现别的功能,因此,最后只剩HJKL是上下左右的最好选择了。从这点看,并不是作者的个人喜好选择了HJKL,而是不能不选择他们。