很多人可能都会质疑,既然可以“←”,“→”,“↑”,“↓”,干什么要用hjkl,完全没有必要啊?这是我最开始知道vi的方向键这么古怪后的第一反应,后来去谷歌了一下,看到下面的几张图,起码是知道了这么设计的缘由了:
但这种移动方式明显是上个实际的产物,为什么不跟着键盘一起进入博物馆呢?
存在即是合理,方向键确实很便捷,但是每次想点击方向键的时候,右手总是要向右下方移动“很远”的一段距离,这对于强迫症发作的追求高效率的程序员来说是致命的,所以,vimmer的一个很重要的理念就是双手尽量不离开主键盘区。
从此,每一个误入vim教派的教徒没都需要首先翻越hjkl的大山,有许多人选择绕道——坚持上下左右键,有的人累死在半山腰上。hjkl有这么难吗?我以前也觉得很难,但一旦找到正确的方法,短时间内就可以记住。其实换个角度来想想,我们26个键位是怎么记住的呢?我想大多数人其实并没有记住,但是你的手部肌肉记住(Muscle Memory)了,所以重要的不是记住hjkl分别对应的左下上右,而是你想向上移动时手不自觉点击了k。
学习从来不应该是死记硬背,有什么好的学习方法吗?当然有,下面推荐两款学习vim键位的小游戏,寓教于乐:
vim-adventures :这个是要收费了,可以免费玩几关。
pacvim:安装的详细方法以及玩法里面都有,不过只能在linux或者os x上玩,当你能打到第8关左右基本就可以出关了。
上面两个小游戏用到的键位还是挺多的,有基本的hjkl,还有w/b/e/$/^/0等等,有空多玩玩,相信用不了2天就可以熟练掌握了。