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} },

相关文章
相关标签/搜索