sublime-text 鍵綁定

vim 和 emacs 是牛人們的兩大神器,sublime-text則是每一個人的編程利器。程序員

先說一下本人的感覺,vim用了一段時間,emacs也小試了一下,兩大神器滿是各類命令,另人眼花繚亂。編程

可是有一點我要提一下,vim 和 emacs 的 tutorial (基礎教程)都是從 上 下 左 右 開始的,vim

vim 是 h(左) j(下) k(上) l(右),emacs 是 Ctrl-b(back:左) Ctrl-f(forward:右)sublime-text

Ctrl-n(next:下) Ctrl-p(previous:上),鍵盤上明明有上下左右鍵,爲何要重複造輪子呢?優化

不光如此,包括 pageup pagedown home end 鍵兩大神器也都進行了按鍵映射。教程

但是這些鍵明明都有啊!emacs

這裏說明一下個人想法,鍵盤上是有方向鍵和編輯區,不光如此還有小鍵盤區,彷佛功能很全面,分工很明確。io

是的,對於普通人來講這樣的分工明確的鍵盤很受歡迎,畢竟一個蘿蔔一個坑,腦殼不亂。基礎

但是對於程序員來講,這個事情就得好好想想了,程序員無時無刻不在和鍵盤打交道,並且不一樣於通常的輸入,scroll

代碼每每須要反覆的修改,光標來回的挪動,文本反覆粘貼複製。若是不合理地利用鍵盤,程序員的手將會受到

無盡的摧殘。幾乎每一個編程過一段時間的人都會有這樣的感受,小鍵盤是用的最少的,主鍵盤區就不用說了,

由於要輸入這個不可或缺,而編輯鍵和方向鍵又由於要反覆地修改,因此使用頻率也是很大的,鼠標自不用多說,

畢竟是在圖形界面下,總要用一用的,加之鼠標功能全面,控制精確,有時也能夠替代光標鍵和編輯區。

程序員的手(右手爲例)主要處於如下四種狀態:

1. 兩手放在主鍵盤區,進行輸入操做

2. 一隻手放在主鍵盤上,另外一隻手移動光標鍵

3. 一隻手放在主鍵盤上,另外一隻手放在小鍵盤上輸入數字

4. 一隻手放在主鍵盤上,另外一隻手移動鼠標

每變幻一種狀態,手腕(主要是右手腕)總要挪動一下,這對於時刻操做鍵盤的程序員來講簡直就是噩夢。

移動手腕比敲幾個字符要累好多的,因此咱們的目標是儘量地減小狀態數目,並進一步減小切換次數。

(其實減小狀態總數,目的就是爲了減小切換次數)

結合各鍵盤區功能和程序員的四種操做方式,咱們能夠進行一些優化。

考慮到小鍵盤區輸入頻率較少的特色,咱們直接廢掉小鍵盤,改成主鍵盤區輸入,這樣直接減小了一種狀態。

方向鍵和編輯區使用頻率比較大,看似不可或缺,可是鼠標又能夠徹底替代它,二者只能二選其一。

咱們是在圖形界面下工做,鼠標真是不能廢,而方向鍵則不一樣了,vim 和 emacs 首先就解決了方向鍵的

問題(固然編輯區也解決了),因此咱們決定把中間的雞肋——方向鍵和編輯區,也給廢掉。

那有的人說了,vim 和 emacs 太複雜了,我不會用怎麼辦?

^_^,咱們今天的主角登場了,sublime-text。最初被她吸引,是由於華麗的 monokai 主題界面,

後來漸漸體會到她那無微不至的細節,深深陷入其中,沒法自拔。

對於用過 vim 或是 emacs 的用戶,建議您選擇 sublime-text 提供的 vintage mode 或是 emacs mode。

而對於沒用過兩大神器,或是不打算用兩大神器的童鞋來講,本位爲您提供如下幾個鍵綁定來消除方向鍵和編輯區這個雞肋。

    // up    { "keys": ["ctrl+p"], "command": "move", "args": {"by": "lines", "forward": false} },    // down    { "keys": ["ctrl+n"], "command": "move", "args": {"by": "lines", "forward": true} },    // left    { "keys": ["ctrl+b"], "command": "move", "args": {"by": "characters", "forward": false} },    // right    { "keys": ["ctrl+f"], "command": "move", "args": {"by": "characters", "forward": true} },    // half page up, you can change 15 to other number    { "keys": ["ctrl+u"], "command": "scroll_lines", "args": {"amount": 15.0}, "context": [{ "key": "setting.command_mode" }]},    // half page down, you can change 15 to other number    { "keys": ["ctrl+d"], "command": "scroll_lines", "args": {"amount": -15.0}, "context": [{"key": "setting.command_mode"}]},    // home, you can change ctrl+h to other key binding    { "keys": ["ctrl+h"], "command": "move_to", "args": {"to": "bol", "extend": false} },    // end, you can change ctrl+e to other key binding    { "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false} },    // ctrl+left, you can change ctrl+l to other key binding    { "keys": ["ctrl+l"], "command": "move", "args": {"by": "words", "forward": false} },    // ctrl+right, you can change ctrl+r to other key binding    { "keys": ["ctrl+r"], "command": "move", "args": {"by": "word_ends", "forward": true} },

相關文章
相關標籤/搜索