標籤:

Vim 使用水平布設的 hjkl 鍵作為游標移動鍵的原因是什麼?


你看了當年 BillJoy 寫 Vi 的那台電腦的鍵盤布局就懂了:

http://en.wikipedia.org/wiki/File:KB_Terminal_ADM3A.svg


補充一個今天看到的圖片(ADM-3A terminal 鍵盤布局):

另外,可以看看 Esc 鍵的位置:

註:ADM-3A terminal 是 Bill Joy 當年創造 vi 時所用的電腦。來源:http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/


補充:為什麼 Vi 不用方向鍵?因為早期計算機鍵盤沒有方向鍵。


Vi是作為terminal friendly的編輯器而設計出來的,保證在Unix的文字終端上能正常工作是非常重要的性質。

但早期Unix的文字終端只能傳輸ascii 127以內的字元,不包括需要用控制鍵的上下左右(那個時候的鍵盤還沒有標準的上下左右鍵),所以設計了HJKL來作為移動使用。


《UnixLinux大學教程》(Harley Hahn著,好書,可以當小說看)第513頁和第522頁里說了,1976年Vi發明人BillJoy使用的ADM-3A終端的鍵盤上的Esc鍵在現在鍵盤的Tab鍵的位置,而方向鍵剛好在HJKL上,所以他這就這麼規定了。


  • 為了提高操作速度。Vimtutor 教程中提到,用戶只要習慣了 HJKL 的導航方式,移動游標的速度會變得更快。
  • 為了保持和 Vi 的通用性 [1]。因為一些早期的系統不預裝 Vim,只有 Vi。Vi 僅支持 HJKL 的移動方式,不支持使用鍵盤的方向鍵。為了幫助習慣這種操作的用戶平滑過度到 Vim 上,所以使用了 HJKL 作為移動鍵。

------

[1] http://www.messaliberty.com/2009/01/how-to-disable-the-arrow-keys-in-vi-or-vim/


推薦閱讀:

Android 鍵盤快捷鍵有哪些?
Win 7 有什麼炫酷的快捷鍵?
快速提高逼格的電腦快捷鍵有哪些?
如何訓練不用滑鼠操作excel,僅僅用快捷鍵操作?

TAG:快捷鍵 | Vim |