[!WARNING] 由于 Colemak 更改键位心智负担过重以及有操作他人计算机的需求,笔者已经换回 Qwerty 了
为什么是 Colemak?

转眼间又过了一年,每次跨年最感慨的就是各种软件中去年的帖子的时间突然就有了年份修饰,即使是 12 月 31 日,也变成了 2024 年 12 月 31 日。
正如上图所示,我换配列的主要原因,一是我在 QWERTY 下的指法实际上是一指禅的变体,二就是换一个更现代的配列,减轻打字压力,也如上图所示,我已经换了接近 3 个月了。
写这篇文章的目的主要是中文互联网上关于 Colemak 的资料太少了,所以想写一篇,顺便记录一下我迁移的过程。
身边统计学地说,大部分换配列的人(除了 Programmer’s Dvorak 这种极端情况)的动机都是因为指法问题,这也很好理解,因为换配列相比改指法的沉没成本并没有高到难以接受。
要注意的是,与传统认知不同,QWERTY 配列在设计之初并没有 “刻意放慢打字速度” 的意图。但客观的说,*打字机卡键(Jamming)*的存在确实证明了 “QWERTY 配列并不够好"。即使现在并没有严格意义上的科学证明 QWERTY 配列的打字速度比其他配列慢,但至少可以肯定的是,QWERTY 的设计在当下的键盘下是不够“优雅”的,仅仅观察主键区,就有以下几个问题:
- QWERTY 的主键区(Home Row)有分号
;,一个并不常用的符号,却占据了主键区的一个位置,这无疑是一种浪费。 - QWERTY 的主键区只有一个元音
a,而且被放在了小拇指键区
预防卡键的一个主要措施便是不把常用的键放在一起,这是为了避免打字头的碰撞。而在 2025 年的今天,我们似乎没有必要为打字机的缺陷买单。
下面是使用 Keyboard Heatmap 生成 QWERTY、Dvorak 和 Colemak 的打字热图,使用的是 Shakespear 的 Romeo and Juliet 中的选段

不难看出,Colemak 最大的特点是手指的移动距离最短,即使不会提高打字速度,至少可以减少打字压力,而最重要的是,Colemak 相比 Dvorak 的改动更小,基础的全局快捷键(C-z C-x C-c C-v C-a C-q C-w) 没有任何变化,这意味着对于无法改键的现代软件,Colemak 的迁移成本是最低的。
对于全拼,Dvorak 的打字热图明显比 QWERTY 和 Colemak 更均匀,而 Colemak 相比 QWERTY,基准行右手键的占比更高。

示例文本是鲁迅的《孔乙己》
练习
虽然目前已经无从考证,但我在切换为 Colemak 前,最后一次测 QWERTY 的打字速度是 ~85WPM,当时我用的还是 Keybr,而切换后,我主要使用 Monkeytype 和 Colemak Academy 练习。
虽然这几个网站的作用不一,但 MonkeyType 看上去比 Keybr 要 Programmer Friendly 一些。keybr 主要是分字母练习,Colemak Academy 则是分键位练习(不仅包含 Colemak!), MonkeyType 更注重于测速。


上图中,我特别标出了 ~65 WPM 的时间点,可以看到,半个月练到 65 WPM 并非难事。而目前我的打字速度稳定在 90 WPM+
可见我的 MonkeyType Profile,虽然只有 PB(个人最佳)
改配置文件
相比训练,改配置文件才是最麻烦的(这也是不该用 Dvorak 最重要的原因,要改的东西实在是太多了),特别是对于 Vim 用户来说
对我来说,
hjkl是 Vim 哲学的很重要一部分,因此第一步便是把hjkl改成hnei。
具体可以参照我的 dotfiles,几乎涵盖了大部分的命令行工具和 Windows/macOS/Linux 的 Tiling Window Manager 的配置。
如果你也有换配列的想法,这些链接可能有用
配置文件
- ycherenkova/dotfiles-1 Dvorak
- sxyazi/dotfiles Colemak
- Using Vim with Colemak Vim
- Colemak and Vim — plus zsh, tmux, less, etc. - Colemak Forum Vim
- meow-edit/meow Emacs
配列
- aru-py/programmer-colemak
- 双拼方案评测、优化和生成
- Learn Colemak in steps with the Tarmak Layouts - Colemak Forum
- shelbyd/tarmak
- Should I learn Colemak with or without the DH mod? - Reddit