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

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

4 个回答

因为当初Bill Joy在写VI的时候 用的机器是ADM-3A终端机 那个机器的键盘没有方向键 HJKL就是上下左右 所以很自然的就用HJKL了

至于为什么要用esc来退出编辑模式就不知道了 但是首先编辑模式下带输入功能的按键都是不能用的 算下来可能就是esc比较合适了吧

关于ADM-3A 看这里 有键盘图 http://en.wikipedia.org/wiki/ADM-3A

这都是历史原因造成的。
vim诞生的时候键盘上还没有上下左右的方向键,当时使用的方向键就是hjkl。由于linux系统维护的原因,linux并没有改变这个习惯。但是很多增强版的vim是支持现在键盘上的上下左右键的。
至于使用esc作为模式切换,这都是不成文的规定(因为我们的键盘并没有模式切换的快捷键),但是使用的次数多了,你就是这是合理的了。

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

其实。。。没有什么特殊意义的设计,而是因为:
hjklkeyboard
他那个键盘上印好了的。。。
再来个全图:
fullkeyboard
为什么是ESC键呢?因为ESC键离的近啊,好按啊有木有,我现在已经把Caps Lock键映射为ESC键了。
更进一步的,为什么Home目录是~呢?因为上图的右上角印好了⋯⋯他就是照着自己键盘设计的。

你的回答