Colemak、Dvorak、QWERTY 怎麼選?
比較 Colemak、Dvorak 與 QWERTY 的設計取向、打字速度證據的限制,以及在不屬於你的電腦上切換配置會付出的實際成本。
簡短結論
對大多數人而言,Colemak、Dvorak 與 QWERTY 的比較,答案很單調:繼續使用 QWERTY,因為轉換成本是數週的低效率工作,而效益很小且難以量化。如果你確實想更換,Colemak 是成本較低的選擇。它保留 QWERTY 原本位置的 30 個字母與標點按鍵中的 13 個,也保留複製與貼上按鍵的位置。Dvorak 的變動幅度較大,但支援範圍最廣,因為所有主流作業系統數十年來都已內建支援。這兩種配置本身都不會讓你的打字速度變快。它們改變的是手指移動的距離,以及長時間工作結束時的使用感受。
本頁提供決策結論。如果你已經決定,並且想查看指令,請前往 Linux 的 Colemak 設定指南。
各種鍵盤配置的設計目的
QWERTY 源自 1870 年代的 Sholes and Glidden 打字機,設計目的是解決機械結構問題。在那部機器中,每個按鍵都會讓金屬字槌從字槓架中向上擺動,撞擊紙張。兩個位置相近的字槌若在短時間內連續擊出,可能會互相碰撞並卡住。將常見的字母組合分散,可以減少卡鍵。常見的說法是 QWERTY 的設計目的是讓打字員變慢,但這只是對該故事的扭曲版本。歷史學家也發現,這種排列的部分設計源自以 Morse code 轉錄內容的電報操作員。對你而言,重點很簡單:這種配置受到 1878 年硬體的限制,之後又因數十年的訓練而固定下來;其中沒有任何部分是為沒有活動零件的鍵盤調整的。
Dvorak 是 August Dvorak 與 William Dealey 在 1936 年提出的替代配置。從配置本身就能看出它的設計原則。五個母音都位於左側 home row,排列為 AOEUI;最常見的英文子音則位於右側 home row,排列為 DHTNS。常見單字因此會在左右手之間交替輸入,主要工作也由較有力的手指負責。在這三種配置中,Dvorak 對使用者習慣的影響也大幅超過其他兩種,因為只有 A 和 M 兩個按鍵保留在 QWERTY 的位置。
Colemak 由 Shai Coleman 在 2006 年發布,其設計限制就是降低切換配置的成本。左側 home row 為 A R S T D,右側為 H N E I O,讓最常見的英文字母位於手指下方,同時讓其他按鍵盡可能少移動。底列中的 Z X C V B 仍保留在 QWERTY 的位置。Colemak 也會將 Caps Lock 重新對應為 Backspace;這是可以在任何配置中採用的獨立習慣,也可以完全忽略。
Colemak 與 Dvorak 與 QWERTY:實際有多少按鍵移動
計算三列字母列。這些列包含 26 個字母鍵與 4 個標點符號鍵。接著逐一比較每種配置與 QWERTY 位置的差異。「快捷鍵」欄計算 Z、X、C、V 中有多少仍位於 QWERTY 的原始位置,因為在多數系統中,這 4 個按鍵分別用於復原、剪下、複製與貼上。
The data behind this chart
[
{
"label": "QWERTY",
"keys_moved_from_qwerty": 0,
"shortcut_keys_kept": 4
},
{
"label": "Colemak",
"keys_moved_from_qwerty": 17,
"shortcut_keys_kept": 4
},
{
"label": "Dvorak",
"keys_moved_from_qwerty": 28,
"shortcut_keys_kept": 0
}
]Colemak 移動了 17 個按鍵。Dvorak 移動了 28 個按鍵。這項差距就是兩者在實際使用上的完整差異。每個移動的按鍵都代表一個需要重新學習的習慣,因為手部仍會伸向原本的位置。因此,這個數字可粗略反映不適應期會持續多久。但它無法說明哪種配置較好。
編輯快捷鍵是否仍位於預期位置?
Colemak 將 Z、X、C 和 V 保留在 QWERTY 的原有位置,因此 Ctrl+Z、Ctrl+X、Ctrl+C 和 Ctrl+V 仍可由同一隻手的相同手指操作。Dvorak 則保留其中 0 個鍵。使用 Dvorak 時,字母 C 位於 QWERTY 的 I 鍵位置,V 位於 QWERTY 的句點鍵位置,X 位於 QWERTY 的 B 鍵下方,而 Z 位於 QWERTY 的斜線鍵位置。複製與貼上會變成需要雙手操作。
這在終端機中的影響比文書處理器更大。伺服器管理員每天會數百次按下 Ctrl+C 來中斷執行中的命令,以及按下 Ctrl+D 來關閉標準輸入;但在 Dvorak 中,這兩個快捷鍵都會移到右手:C 移至 QWERTY 的 I 鍵,D 移至 QWERTY 的 H 鍵。macOS 隨附一種變體,在按住 Command 鍵時會切回 QWERTY。Linux 沒有 Ctrl 鍵的標準等效方案,因此在 Dvorak 中,這些快捷鍵會移動,而且會一直維持新的位置。
Vim 和 less 使用 h、j、k 和 l 移動游標;當初選用這些字母,是因為它們位於 QWERTY 的右手區域。這兩種替代鍵盤配置都會破壞這項設計。在 Colemak 中,實體 QWERTY h、j、k 和 l 鍵上印出的字母分別是 h、n、e 和 i,通常的修正方式是將移動操作重新對應到這四個鍵。在 Dvorak 中,同樣四個實體按鍵會輸入 d、h、t 和 n。任一種修正只需在 vimrc 中加入幾行設定,但只要改在其他人的電腦上使用預設設定,就不再有效。
打字速度證據薄弱之處
部分論點是算術問題,沒有爭議。給定一種鍵盤配置和一段文字後,可以計算手指移動的總距離,以及同一根手指必須連續輸入兩個字母的頻率。對一般英文散文而言,Dvorak 和 Colemak 的這兩個數值都低於 QWERTY,鍵盤配置分析工具對方向也有一致結論。不過,這些結果取決於用來計算的文字。你的原始碼、使用的語言和變數名稱並不是那段文字。
爭議在於,算術結果是否會轉化為速度。支持 Dvorak 的最有力主張,來自第二次世界大戰期間美國海軍進行的一項研究。該研究報告指出,重新訓練能帶來大幅提升。但研究是在 August Dvorak 親自監督下進行,因此不是獨立證據。1956 年,Earle Strong 為 General Services Administration 進行受控的重新訓練研究,發現 Dvorak 重新訓練並沒有勝過讓 QWERTY 打字員接受同等額外練習。1990 年,經濟學家 Stan Liebowitz 和 Stephen Margolis 在一篇名為 The Fable of the Keys 的論文中整理了這些批評。這篇論文本身也持續受到爭論,因為它真正探討的是市場鎖定,而不是鍵盤。90 年後,仍沒有大型且控制良好的試驗證明,替代鍵盤配置能讓人打字更快。
還有一個更簡單的理由,說明為何應謹慎看待速度主張。人們使用 QWERTY 打字時,速度可以遠超過每分鐘 150 個字。如果你的速度是每分鐘 60 或 70 個字,限制你的因素就不是鍵盤配置。
舒適度和傷害是更難回答的問題,相關證據也更少。人們確實表示切換配置後手部疼痛減輕,這種回饋值得重視,但切換者通常會同時改變多項因素。新鍵盤、不同的桌面高度、增加休息時間,以及數週刻意放慢的打字速度,可能在同一個月內一起出現,而任何一項都可能是原因。如果你是因為疼痛而考慮切換,請先調整姿勢和工作量,因為這兩方面有較充分的證據支持,而且不需要花費任何成本。
真正的切換成本
開始幾天預期會像初學者一樣打字,速度約為每分鐘 15 個單字。通常需要 2 到 4 週,才能不再把全部注意力放在鍵盤配置上。恢復到原本的速度,通常需要每天使用 1 到 3 個月。這些數字來自實際使用者的回報,不是研究結果,因此應視為範圍,而不是保證。
最讓人意外的是干擾。你的雙手並不是在學習「Colemak」。它們是在學習每個按鍵對應的一個位置,而每隔幾小時在兩種配置之間切換,會讓兩套對應都不夠穩固。為了處理緊急工作切回 QWERTY,之後再切換回來,是最慢的學習方式。有兩種做法可行。切換一次,接受那段難熬的一週。或者嚴格分開,讓一把實體鍵盤永遠只使用一種配置,使使用情境告訴雙手應載入哪套對應。
多數放棄的人都是在速度下滑期間放棄的,而原因是那週工作繁忙,不是鍵盤配置不適合自己。因此,選擇切換時機是整個轉換過程中最重要的決定。請在工作較少的一週開始。不要在截止期限前一週開始,也不要在值班週開始。
你原本的 QWERTY 技能通常不會消失。多數切換者表示,經過幾天使用後便能恢復,但速度會比以前慢,初期也會出現錯誤。了解這點很重要,因為人們最擔心的就是失去 QWERTY,而事實證明,這反而是最不容易發生的部分。
Client or server: where does a remap belong?
幾乎一律在用戶端。鍵盤配置會套用在鍵盤所連接的電腦上,其他地方不會套用。按下按鍵時,本機系統會將按鍵位置轉換為字元,接著由 承載按鍵輸入的 SSH 工作階段 將該字元以位元組傳送至伺服器。伺服器完全看不到按鍵動作。因此,在遠端主機執行 localectl set-keymap dvorak 不會改變你透過 SSH 傳送輸入的方式;工作站若設定為 Colemak,登入的每一台主機都會收到 Colemak 輸入,而不需要在任何主機上進行設定。
伺服器本身的鍵盤配置只在兩種情況下有關:機器實際連接了鍵盤,或服務供應商透過瀏覽器或序列連線提供主控台。在 VPS 上,這通常是救援主控台,而這正是最不適合進行實驗的情況。
localectl status
localectl list-keymaps | grep -i dvoraklocalectl status 會列印兩組設定:VC Keymap 用於文字主控台,X11 Layout 用於圖形工作階段。list-keymaps 會列出系統實際已安裝的主控台鍵盤配置名稱。這項檢查可避免設定不存在的名稱。即使 Colemak 可用於圖形工作階段,也不一定會作為主控台鍵盤配置存在。因此,假設該配置存在前,請先執行該 grep 指令搜尋你的配置。
在桌面環境中,setxkbmap -layout us -variant colemak 會變更執行中 X 工作階段的鍵盤配置,localectl set-x11-keymap us pc105 colemak 則會讓設定在重新開機後保留。Wayland 的鍵盤配置由 compositor 管理,因此 setxkbmap 不適用於此處;請改在桌面環境的輸入設定或 localectl 中進行變更。完整程序(包括 Caps Lock 的處理方式)請參閱 Linux 上的 Colemak 使用指南。
鍵盤韌體如何避開整個問題
如果您需要登入多台機器,請將配置放在鍵盤中,而不是各個作業系統中。可程式化鍵盤會儲存自己的按鍵對應,並傳送您要的字母代碼,因此每台主機看到的都是一般鍵盤輸入的一般字母。任何主機都不需要設定,重建系統時也不會遺漏設定。這也適用於您完全無法設定的機器,例如同事的筆記型電腦、UEFI 設定畫面、救援映像,或您無權變更系統設定的主機。對於必須維護數十台 Linux 伺服器的設定的人而言,這代表只需購買一次,而不是在每台機器上各自維護一個設定項目。
常見做法是使用執行 QMK 的鍵盤,或使用其無線版本 ZMK。兩者都是由您自行刷入的開放原始碼韌體;VIA 和 Vial 則是圖形化編輯器,可直接寫入變更,無須重新建置。許多主流鍵盤也隨附供應商軟體,可將重新對應設定儲存在鍵盤中。限制也很明確。筆記型電腦的內建鍵盤通常無法做到這點,因此插入外接鍵盤時可使用您的配置,未插入時則會回到 QWERTY;這本身也可能造成另一種干擾。
救援主控台是真實的營運風險
問題通常如下。伺服器重新開機後無法恢復,你開啟供應商的 Web 主控台,接著必須輸入 root 密碼,以及幾個你已不常使用的檔案系統指令。兩件事可能同時出錯。你的肌肉記憶已經適應新的鍵盤配置,但主控台可能不支援該配置。
不同瀏覽器主控台傳送的內容不同。有些主控台會轉送本機系統產生的字元,因此用戶端的重新對映設定會隨你套用。另一些則會轉送按鍵位置,並假設遠端使用 US QWERTY 配置;在這種情況下,你的 Colemak 鍵盤會在主控台輸入 QWERTY 字母。你無法從控制面板判斷主控台屬於哪一種。請在機器正常運作時測試:開啟主控台、登入、輸入一句話,然後確認畫面上顯示的內容。現在就進行測試,不要等到服務中斷時才測試。
接著移除可以避免的風險。使用金鑰登入,讓一般存取永遠不必要求你輸入密碼,並將 伺服器間的金鑰管理 視為復原計畫的一部分,而不是便利功能。將救援密碼存放在可直接貼上的位置,因為大多數瀏覽器主控台都具備傳送文字或貼上的功能。此外,請保留透過鍵盤目視尋找 QWERTY 字母的能力,因為凌晨兩點從手機查看鍵盤配置圖會很慢。
加密磁碟會增加另一個陷阱。開機時的密語提示由 initial ram disk 執行,這時尚未載入正常的鍵盤配置,因此會使用建置在該映像中的配置。Debian 和 Ubuntu 預設使用內建的 US QWERTY 配置。設定值位於 KEYMAP= 的 /etc/initramfs-tools/initramfs.conf,其初始值為 n。將它設為 y,執行 sudo update-initramfs -u,然後重新開機,確認密語提示可接受你的鍵盤配置後,再正式依賴這項設定。無法解鎖的機器就必須重新建置。
Colemak-DH 與其他配置
選擇不只有 3 種。Colemak-DH 也稱為 Mod-DH,是 Colemak 最常見的改良版本。在標準 Colemak 中,D 和 H 位於主列中央欄位,食指必須向側邊伸展才能按到,而不是向內彎曲。Mod-DH 將這兩個字母移到食指下方的底列,使主列左側成為 A R S T G,右側成為 M N E I O。此配置有 2 個版本:一個適用於一般錯列鍵盤,另一個適用於正交排列與直欄錯列鍵盤。請選擇與硬體相符的版本。
此外還有 Workman、Norman、Canary、Graphite,以及由配置最佳化工具產生的許多其他設計。Programmer Dvorak 會重新排列數字列與符號,適合輸入標點多於一般文字的人。其他語言也有各自的配置,例如法文使用 bépo,德文使用 Neo。實際上,關鍵取決於可用性。Dvorak 幾乎隨處都能使用,包括手機鍵盤與主控台鍵盤配置。Colemak 隨附於 X 鍵盤設定資料,所有 Linux 桌面環境都會讀取這些資料。Colemak-DH 較晚才加入其中,因此在較舊的發行版上,可能仍須從該專案安裝配置檔案。社群提供的配置檔案必須帶到每台機器,或內建到鍵盤韌體中。
那麼,應該選哪一種?
如果目前沒有問題,請繼續使用 QWERTY。切換需要數週時間,而且能提升速度的證據有限,因此僅有輕微的不便,不足以成為單獨切換的理由。
如果想以最低成本重新排列按鍵,請選擇 Colemak。13 個按鍵維持原位,編輯快捷鍵也維持不變,而且在任何 Linux 桌面環境中只需修改一行設定。
如果重視能在任何機器和作業系統上,透過現有選單設定鍵盤配置,並且能接受重新學習快捷鍵,請選擇 Dvorak。
如果本來就要購買可編程鍵盤,請選擇 Colemak-DH。韌體解決了可用性問題,因此可以直接採用更完善的配置。
無論選擇哪一種,開始前先決定要在哪裡套用映射。如果每天大多時間都在 全時間終端機工作環境 中工作,且經常登入許多機器,鍵盤是適合套用映射的位置。如果只使用一台筆記型電腦,設定在作業系統中即可。接著規劃救援方式,並在真正需要前先完成測試。
FAQ
Colemak 或 Dvorak 實際上比 QWERTY 快嗎?
沒有可靠證據顯示其中任何一種配置能讓打字速度更快。能夠測量的是按鍵分布:在英文文章中,這兩種配置都會讓更多按鍵落在基準列,手指移動距離也比 QWERTY 短。至今沒有大型且控制良好的試驗證明,這能帶來更高的每分鐘字數。最常被引用的 Dvorak 海軍研究由 Dvorak 親自監督,而 Earle Strong 於 1956 年為 General Services Administration 進行的研究發現,讓 QWERTY 打字員接受相同的額外練習後,Dvorak 並無優勢。人們使用 QWERTY 也能達到每分鐘超過 150 字,因此如果你的速度是每分鐘 70 字,限制因素並不是鍵盤配置。
學習新的鍵盤配置需要多久?
請預留幾天以每分鐘約 15 字的速度打字,並預期需要 2 到 4 週,才能不再把全部注意力放在鍵盤配置上;通常需要 1 到 3 個月才能恢復原本的速度。這些是回報的範圍,不是研究結果。更大的風險是互相干擾:白天在兩種配置之間切換,會讓兩者都不熟,因此要麼一次切換並接受那段速度緩慢的週期,要麼嚴格區分,讓一把實體鍵盤永遠只對應一種配置。多數放棄的人是在那段速度緩慢的期間退出,因為當週工作突然變忙,所以請選擇較清閒的時段開始。
我的鍵盤配置會透過 SSH 跟著我嗎?
會,而且伺服器無法控制這件事。鍵盤配置會套用在連接鍵盤的那台機器上。本機系統會先將按鍵轉換成字元,SSH 再以位元組傳送該字元,因此遠端主機看不到按鍵位置。在伺服器上設定 keymap 不會影響 SSH 使用者。伺服器本身的 keymap 只會套用到直接連接的鍵盤,或供應商透過瀏覽器或 serial link 提供給你的主控台。
Ctrl+C 和 vim 的 h、j、k、l 按鍵會怎樣?
Colemak 保留 Z、X、C 和 V 的 QWERTY 位置,因此標準編輯快捷鍵不會移動。Dvorak 會移動這 4 個按鍵:C 位於 QWERTY 的 I 按鍵,V 位於 QWERTY 的句點,X 位於 QWERTY 的 B 下方,而 Z 位於 QWERTY 的斜線按鍵。Ctrl+D 會移到 QWERTY 的 H 按鍵,這在 shell 中很重要。游標移動在兩種配置中都會失效。Colemak 使用者通常會將移動功能重新映射到 h、n、e 和 i,因為這些字母印在實體 QWERTY 鍵盤的 h、j、k 和 l 按鍵上;Dvorak 使用者則使用 d、h、t 和 n,理由相同。
切換鍵盤配置後,如何維持救援主控台可用?
請趁伺服器正常運作時立即測試。開啟供應商的主控台、登入並輸入一句話,因為有些主控台會轉送用戶端產生的字元,有些則會轉送按鍵位置,並在另一端假設使用 US QWERTY。請使用 SSH keys 登入,讓日常存取不需要輸入密碼;並將救援密碼存放在可以貼上的位置,因為大多數瀏覽器主控台都有貼上或傳送文字的功能。如果磁碟已加密,開機密碼提示會使用 initial ram disk 內建的 keymap。在 Debian 和 Ubuntu 上,這表示要在 /etc/initramfs-tools/initramfs.conf 中設定 KEYMAP=y、執行 sudo update-initramfs -u,然後重新開機,確認提示能接受你的鍵盤配置。