自上一篇HHKB 改造记:更换蓝牙控制器 立 Flag 准备单独一篇谈谈按键之后,至今已过去半年多,草稿中都躺了三四篇相关文章,却始终没有想要写的欲望。不过最近,有了一个新想法,所以准备先从按键谈起,顺便完成这个 Flag。
按键的类型
键盘自上世纪作为计算机的输入设备以来,其外观和功能虽然不断变化,但按键的类型大致可以分为两类:一类是功能键,基本涵盖了 80% 以上的按键,比如字母键、数字键、Delete、ESC 等均可归为这一类,共同点是按下松开按键之后,会执行特定功能;另一类是修饰键,按住之后会改变其它按键的默认功能,但独按时没有任何效果。
此外还有一类较为特殊,似前两类的结合体:按下松开之后触发,然后会持续的改变其它按键的功能,直到再次按下相同按键才会恢复。当然,如你所知,指的自然是 Caps Lock 和 Number Lock 这类按键,这里暂称为状态键。
按键的操作
讲完了按键的类型,接下来谈谈按键的操作。在《人本界面》中,作者 Jef Raskin 把按下和松开一个按键或开关的过程,期间没有任何其它的动作
定义为敲击(Tap)。但在中文语境中,敲击并不是一个惯用词,所以在这里用按
来表示,并把这过程称为短按。
按下,松开
短按应该是键盘中最常用的操作,前文所指的功能键均由短按触发。但是,所有的修饰键默认短按是没有任何功能的,所以我们可以把它改为一些使用较为频繁功能的触发键。如把 Shift 的短按操作改为切换中英文输入法。
按下,松开;再按下,再松开。当重复短按的操作时,功能键会重复执行相同操作,修饰键同样没有任何功能,因此一些第三方应用以此作为触发键,如 Alfred、iTerm2 等,可设为任意修饰键连按两次唤出,此类操作称为连按(Double Tap)。而我们同样可以把一些功能赋予连按,比如个人习惯在任意应用中使用 Vim 模式,所以把 ESC 设为连按两下自动切换到英文输入法状态。需要注意的是连按时,第一次仍然保持原有按键的功能,第二次时才会改为指定功能。
按下,保持
当一个按键保持着按下的状态时,按键默认会持续重复执行相同功能,直到松开为止,这类操作称为长按。它同样可以作为触发键,如在能 macOS 中显示当前应用快捷键的应用 CheatSheet,便是长按 Command 触发查询操作。
如前文所言,修饰键也是长按操作,不同的地方在于它在保持长按的状态时,需要短按其它按键,这类操作是修饰键的专属,称之为按住。按住操作并不会影响原有的长按操作,后者的触发时间通常要长一些。
最后
总结一下:
- 类型
- 功能键:按下松开一个按键之后,会执行特定功能;
- 状态键:按下松开一个按键之后,会持续的改变其它按键的功能,直到再次按下相同按键;
- 修饰键:按住一个按键不放的同时按另一个按键,这时保持按住状态的按键便成为修饰键;
- 操作
- 短按:按下和松开一个按键的过程;
- 连按:连续对一个按键重复短按操作;
- 长按:按键保持按下状态,直至触发功能;
- 按住:按键保持按下状态,同时短按其它键;
一个按键可以同时拥有短按、连按、长按和按住四种操作,除了修饰键只能使用按住操作之外,功能键和状态键可以使用任意三种操作触发。另外,需要注意的是不建议在使用频率很高的短按操作上再设定连按操作,非常容易误操作。下面是一些适合更改的按键,及默认操作:
按键 | 短按 | 长按 | 按住 | 连按 |
---|---|---|---|---|
ESC | 默认 | 无 | 无 | 无 |
Tab | 默认 | 重复自身 | 重复自身 | 重复自身 |
Control | 无功能 | 无 | 默认 | 无 |
lShift | 无功能 | 无 | 默认 | 无 |
lOption | 无功能 | 无 | 默认 | 无 |
lCommand | 无功能 | 无 | 默认 | 无 |
Space | 默认 | 重复自身 | 重复自身 | 重复自身 |
rCommand | 无功能 | 无 | 默认 | 无 |
rOption | 无功能 | 无 | 默认 | 无 |
rShift | 无功能 | 无 | 默认 | 无 |
键盘两边按键的默认功能,除了标为默认的之外,其它均可以视需要更改。
个人当前的几个比较稳定的配置:
- Tab:按住,Vi Mode(全键盘 Vim);
- Shift:短按,切换中英文输入法;
- ESC:连按,切换为英文输入法(用于配合 Vim);
- Space:按住,Hyper 键(Command + Control + Option);