设计
设计
设计思路
理解一些设计思路,能增加认同感、提升契合度、方便自己根据习惯魔改
部分笔记见脚本文件夹md文件,或脚本顶部注释。也有部分笔记
迭代
这点可以见 “Caps Lock作修改键” 笔记,那里有更新日志。可以从更新日志中看出是怎么迭代的
方向键
首先来看最主要的方向键部分区域
我的设计:
YUIO
HJKL
# 我的设计
🟦⏫🔚🔜
⏪️⏪️⏬⏩️⏩️
# 小键盘对应
🟦🟦⏫🟦
🟦⏪️⏬⏩️
# VIM设计
拷贝 撤销 插入 分段
⏪️⏬⏫⏩️
我为什么不根据小键盘设计,也不根据VIM,而是把上键放在了U的位置。
这些设计的优缺点在哪?
小键盘方案 (IJKL)
优点:
- 同时按住:
在需要同时按住多个方向键的场景,效果最好。
例如操控游戏人物角色,在侧视视角平面游戏中,你可能按左/右方向键,同时点按上/下方向键来跳跃/爬下。或者在俯视视角平面游戏中,可能往一个斜向方向移动。 - 无冲突:
另外,上下键一般不会同时按住,所以都分配给中指,也是合理的。
而其他排布方案,做不到这一点 - 直观:
左右和上下的排布,非常直观,符合思维。
假设你需要操控一名角色躲避弹幕,不考虑按键冲突和同时按下的影响,使用这种方案玩得更好轻松。
中立点:
- 但在办工场景,无论是多行的文本环境,还是表格,都几乎没有需要按住多个方向键一起移动的需求。
Linc CapsLock (UJKL)
优点:
- 输入快、舒适、手感好:
适用于高频输入环境。通过按键频率和手感分析,来排布按钮 - 记忆点好、学习成本低 (位置驱动):
有规律。根据位置分类来降低学习成本,利好英语不好的用户 - 综合性能:
前两点,往往是冲突的。而该方案致力于很好地去平衡他们
场景:
- 日常输入、代码环境、码字竞速
- 能够适应高频高速操作、高舒适度操作
VIM (KHJL)
优点
- 整齐性:
通过HJKL
这样的顺序,位置布局分割好 - 记忆点好 (单词驱动):
根据单词来降低学习成本。但对于非英语用户,不友好 - 功能多
缺点:
- 不适合高频高速操作,高频按键的分散,锁死了速度上限和舒适度
舒适问题
操作序列 -> 按键序列
我空口说高速、舒适,显得空。不如结合例子来看一看:
操作序列
先给一个操作序列:
- 输入
helol world
(发现打错单词了) - 向左 6下
- backspace 2下
- 输入
lo
(拼写错误改过来了,但我接下来想用驼峰命名法了) - del 2下 (删除光标右边)
- 输入
W
- end 1下 (光标移动到最右)
- 输入
;
- 回车
最后相当于输入了 helloWorld;\n
然后再来看对应的按键序列:
vim
i
进入插入模式- 输入
helol world
<Esc>
返回普通模式6h
向左移动6个字符(到达原文本的空格位置)2X
删除两个字符(删除空格和w)i
进入插入模式- 输入
lo
<Esc>
返回普通模式x
删除右侧字符(删除残留的o)i
进入插入模式- 输入
W
<Esc>
返回普通模式$
移动到行末A
在行尾进入插入模式- 输入
;
<CR>
回车换行
优点:
- 连续做某个操作 (移动删除等) 时方便。但有时很难确定自己要做多少次某个操作
- 功能多,但在这个场景中完全无法展示出来
缺点:
- 不舒适 - 相距远。很多按键都很远,很难按
- 不舒适 - 切换麻烦。需要频繁切换普通模式和插入模式,麻烦
- 不舒适 - 按键多。除开打字母外,最少只需按 16 次按键,而这些按键的距离大,不顺手
Linc CapsLock
(表示方式:Key1(...)
表示法表示按住 Key1
的状态下连续按其他键,离开括号范围则松开 Key1
键)
- 输入
helol world
CapsLock(JJJJJJII)
,向左6个字符并删除2个字符(或CapsLock(D(J)JII)
)- 输入
lo
CapsLock(OO)
向右删除两个字符- 输入
W
CapsLock(;)
移动至行最右侧- 输入
;
CapsLock(Space)
回车换行 (或Enter
)
优点:
- 高舒适 - 按键紧密。所有操作均在字母区完成,减少手部移动
- 高舒适 - 操作量少。除开打字母外,最少只需按 12 次按键。且每次按键都是极为好按的
- 高舒适 - 双手分摊。CapsLock的高频操作都只需左右手各按一个键就能完成
频率策略
方向操作频率
前删 >> (左 右 上 后删) > 下 > (至左 至右 下)
方向键我改过很多版,最终锁定了
复合操作频率
频率估计:(频率估计是为了,让高频操作快捷键更容易触发)
横向对比 字词行:
字操作 > 词操作 或 行操作
在中文语境下,词的移删选 的使用频率是很低的,主要是字操作
英文语境下,词移删选 的使用频率会比较高。
那么应该如何平衡两者呢?
纵向对比 移删选:
字删 > 字移 > 字选
词选 词移 词删,好像都差不多
行移 > 行删 > 行增 > 行选
混杂对比:
字操作 > 行删 > 行顶移 (有替代) > 新行 > 词选 > 词移
真实记录
(为了使方案更合理,下载了按键统计软件whatpulse来统计)
统计下来的数据更有说服力,而不是凭个人感官。
但该数据只适用于我自己,也仅适用于一定的场景。
如果你输出频率不同(如基本不会打错字,基本用不上回退键),或有不同的操作场景(其他编程语言,或Excel等其他办公软件),那么你可以下载类似的软件自己统计和魔改
打代码状态 (右>左>end>下>上)
- 右方向 49次
- 左方向 37次
- 下方向 12次
- 上方向 8次
- end 23次
日常状态
- 134
- 163
- 15
- 13
- 23
- L 138次
- ;53次
高频键
- BackSpace 470
- Enter 384
- Delete 26
- ( 47
- @ 47?
- += 18
按键舒适度
我粗略感觉:K>L>J > I>O>U > ,>M,>.
首先,舒适度 中排 > 上排 > 下排 (按键 J U M 所在排),这点大家大概率一样。
默认情况下,我们会把最舒服的手势放在默认的中间位置,方便兼上下
其次,大家可以观察下自己中间三个手指的长度。
手指长的更容易在手部不移动的情况下仅凭手指自身的屈伸跨越多排,尤其是中排和上排之间的切换。
大家的长度排行可能是:
- 中 > 无 > 食
- 中 > 食 > 无
- 中 > 食 = 无
- ... (其他)
题外话:这有个专业的词叫指长比,其中 食指:无名指
也叫 2D:4D比
。生理上,无名指长于食指, 表明在胎儿期在子宫中暴露于高的睾酮环境
第三,可能和手放的姿势和键盘宽度有关。
一般来说,由于 肩长 >> 键盘长度,所以手放在键盘上会呈现一个“八”字。这意味着手指外部更高,更易于按到上排。而内部更低,更易于按到下排。
而有的键盘是人体工学,按键本身排列也呈“八”字,可以减少这种因素。
甚至有的键盘是分体的,可以把键盘左右分得很快,也可以减少这一因素。