這是我的「BlogBlog 同樂會 - 2026 年 1 月」的投稿文章。本月主題是「推坑」,由 Wiwi 主持。如果你有自己的部落格,歡迎一起來參加!

欣喜!早就想好好地坐下來,跟世界介紹一下我的這套「運籌帷幄的鍵盤操作術」。原本這只是一篇緩慢堆積的殘破文稿,但在某個風光明媚、隨性上網衝浪的日子裡,碰巧看到了 Wiwi 發起的部落格同樂會,主題是「推坑」——噫!不就是個推坑大家丟掉滑鼠的好日子嗎?

(注:若你是其他華語地區讀者,滑鼠與游標你有可能分別稱之為鼠標與光標,後面將使用滑鼠與游標進行指稱。)

當然,現今的人機互動依舊是替滑鼠設計居多,丟掉滑鼠並不是個好主意。但至少,如果我們在「編輯文字」的時候不用一直在鍵盤跟滑鼠之間切換,那該會有多美妙?

如果你也曾經對頻繁的鍵鼠切換感到不便、曾經對方向鍵的遙遠位置感到不解、曾經在使用 Ctrl+C、Ctrl+V 時感到彆扭,那你可能會對我的解決方案感興趣,不妨留下來看看,互相交流一下思路;但若是情況恰恰相反,你從來沒有覺得剛剛說的那些有什麼不方便的地方……

這位仁兄,你別走!就是寫給你看的,坐下來讓我推坑你!

我的理由與方案目標

我這邊的狀況是這樣的。雖然我本來就是 Mac 跟 Windows 雙棲,但文書跟程式部分主要由 Mac 負責,故在鍵盤輸入這塊就沒有特別對 Windows 做太多調教。不過某個時期開始,因案件需要,我被迫必須高頻使用 Windows 筆電進行工作。原本只是偶爾用到,頂多邊吐槽邊複製貼上的我,突然之間避無可避、忍無可忍,所以痛定思痛,來了個大刀闊斧,完成了此項改造。

而現在,宇宙使我們相遇。本文將分享我的這套鍵盤使用哲學,並交代我對 Windows 跟 Mac 進行的改造設定。使用這套方法將會有以下好處:

  • 雙系統指法與鍵位統一,降低認知負荷、減少任務切換成本。
  • 使用方向鍵不用移動前臂。
  • 使用大部分快捷鍵不用移動前臂。
  • 熟悉之後,文本操作再也不需要使用滑鼠。(而且也不用移動前臂)

沒錯,設定好之後,不管用哪個系統,我們的手都可以狠狠地黏在主鍵列(Home Row)上,並且使用相同的邏輯做相同的事。認知負荷降低了,手部移動減少了,整個打字效率就自然提升了。雖然我並不算是一個效率控(這點得感謝《人生4千個禮拜》),但一個良好的環境配置有助於心流的進入與保持,誰會不愛心流流淌的感覺呢

在此我們將先介紹設計哲學,而實際的改造方式將留在後面闡述。

手部盡可能保持在主鍵列:改造方向鍵

首先最重要、也是差異最大的非「方向鍵」莫屬。我之所以前面只對複製貼上碎碎念而沒有抱怨這個,是因為我配置電腦的第一個瞬間就直接改好了,絲毫沒有商量的餘地。

一般來說,方向鍵在這裡:

keyboard-layout(1)

身為一組會被高頻使用的按鍵,似乎是有點太遠了,是吧?如果每次使用方向鍵,整個手部都要特地移動到該區域,使用完再移回來,難道不是一件非常打斷工作流程的步驟嗎?而因為距離實在是太遠了,這個移動的過程中,眼睛幾乎無可避免地會來協助判斷距離與落點,完了,當你眼睛從螢幕上離開,效率不復存在、心流不復流淌。

此一課題,我們以 Alt(右)+i/j/k/l 解決之(Mac 則是同位置的 Cmd(右),後將當做同一件事進行指稱),如圖所示:

keyboard-layout(13)

舉例來說,我想輸入上上下下左左右右,就會是在右手拇指按著右 Alt 不放的同時,其他指頭依序按 iikkjjll。手腕紋絲不動,穩如老狗。

此方法中保留了我們對方向鍵的慣用指法(左鍵食指、右鍵無名指、上下中指),用拇指操作 Alt(右) 作為修飾鍵,啪的一聲,直接解決了按個方向鍵要遠渡重洋的問題,豈不香哉?

然而就我所知,類似的思路中,有些人採取了左手小指操作 Caps Lock 作為修飾鍵的方案。但首當其衝的,如果我要組合 Shift 做選取,閣下如何應對?若是我們的方案,左手小指就可以在選取的過程中,協助使用左 Shift:

keyboard-layout(14)

另外,小指的 range of motion(關節活動度)本來就相對較低,故讓小指負責主要修飾鍵這件事,我保持懷疑態度。

快捷鍵以拇指為主軸:改造快捷鍵

我就不諱言了,只要是日常會需要使用到的功能,本來就應極力避免出現在以下圖示的灰色位置上:

keyboard-layout(15)

這些位置怎麼按?你若非移動前臂,就是以不舒服的角度扭轉手腕,更遑論拿這些鍵去組成組合鍵的反人類程度了。舉個例子吧,在 Windows 中新增分頁的預設快捷鍵 Ctrl + T 長這個模樣:

keyboard-layout(16)

我甚至是用第五掌骨 + 食指去做這件事的,合理嗎?相比之下,雖然複製貼上的 Ctrl+C/V 就沒那麼誇張,但依舊免不了要移動前臂,不甚理想。

這部分,Mac 的以 Cmd 為主軸的快捷鍵設計就是我們要從善如流的楷模。我們要做的,就是要把 Windows 上以 Ctrl 為主軸的快捷鍵之鍵位,改成與 Mac 上以 Cmd 為主軸的快捷鍵之鍵位相同。此方案中,我們處理的手段是直接把 Windows 的 Alt(左) 與 Ctrl(左) 對調位置。

如此一來,複製貼上、新增分頁就會是拇指與食指的配合:

keyboard-layout(7)

最後一塊拼圖:行首、行尾、與逐詞操作

差不多要禮成奏樂了。在那之前,我們來將 Home 跟 End 納入麾下,完成我們宏圖所剩的最後一塊拼圖。如果你不曾使用鍵盤來將文字遊標引導到行首或行尾,那麼你要嘛是拿起滑鼠來代勞,要嘛是壓著方向鍵慢慢等他走到底。如果是這樣的話,也許你該參考一下這個功能,會發現它是真的很方便快速。

在 Windows 的邏輯中, Home / End 分別對應行首與行尾,但 Mac 則是對應文件開頭與文件結尾,相差較大。經過多方嘗試與取捨,我這裡給出的選擇是將其對應到行首與行尾,並將 Home / End 的操作映射在 Alt(右)+u/o 之上:

keyboard-layout(8)

假設你今天句子打完了,發現前面忘了加上早安之類的問候語,你只需要一個 Alt(右)+u,咻,馬上瞬移到行首,手起刀落,毫無間隙。

然而 Mac 對行首行尾操作其實有相當不錯的原生處理方式(例如行首就是 Cmd(左) + 左,使用我們的方向鍵方案可以舒服操作),但我們為了達到兩邊系統的一致鍵位,做出了讓步,等等挪作他用。

至於逐詞操作,如果你沒用過,也推薦你瞭解一下。簡單來說,單純的方向鍵或退格鍵(backspace)按一次只會移動或刪除一個字元(character),但如果逐詞操作就會以詞(word)為單位來進行。舉例來說,今天你要把 Hello world█ 裡面的 world 這個詞刪掉,如果你只用退格鍵就要連續按 5 下,但如果此時搭配逐詞的修飾鍵(原生情形之下,Mac 是 Alt、Windows 是 Ctrl)只需要按 1 下,就直接以詞為單位刪除掉。

而因為 Windows 原生是用 Ctrl 作為逐詞修飾鍵,對我們現在的配置(Alt 與 Ctrl 調換過後)來說非常舒服,哪邊舒服就用哪邊,沒有偏愛誰!所以 Mac 就抱歉了,我們剛好就把剛剛讓步出來的 Cmd 改成逐詞修飾鍵,達到雙系統統一。於是逐詞刪除現在會是這樣按:

keyboard-layout(9)

而逐詞移動就會是這樣按:

keyboard-layout(10)

文字遊標操作術:滑鼠大可不必

至此,我們的右手可以待在主鍵列上操作方向鍵行首行尾左手可以待在主鍵列上操作修飾鍵快捷鍵,運籌於帷幄之中的條件已然滿足——開始嘗試拋棄滑鼠吧!

簡單舉例,各位可以自行感受評斷。假設今天我想打出如下句子:

有些事真的沒必要一直炫耀,就比如 2020 年台大畢業歌是我寫的這件事就沒必要天天提。其實又不是只有 2020 年有台大畢業歌,別的年度也有台大畢業歌呀。雖然全部台大畢業歌裡面只有 2020 年的台大畢業歌是全獨立製作的啦,但台大畢業歌台大畢業歌唄,有啥好說嘴的?就這樣吧,反正 2020 年台大畢業歌是我寫的。

當我打到 有些事真的沒必要一直炫耀,就比如 2020 年台大畢業歌█ 時,我知道後面我會一直重複「台大畢業歌」這個詞,此時我可以往前逐詞選取:

keyboard-layout(11)

注意目前雙系統的鍵位已經統一,Cmd 就等同 Ctrl。此時的動作是,左手的小指與拇指分別按著 Shift 與 Cmd,右手的拇指按著 Alt,在前面三個修飾鍵按著不放的同時,右手食指按 3 下 j。(根據不同的分詞邏輯,「畢業歌」如果被視為一個詞,那就是按 2 下就好)

選取後,複製(Cmd(左)+C)並使用行尾(Alt(右)+o)回到句子末端繼續打字。

整個過程中,我們完成了對「台大畢業歌」的複製,但手依舊維持在主鍵列上,行文未曾中斷,行雲流水,輕鬆寫意。

總之,以上只是一個簡單的舉例。只要綜合本文提到的技巧與思路,其實所有文本操作場景都不再有使用滑鼠的必要——因為滑鼠比較慢

方案說明完畢,如果你有想要嘗試看看,可以繼續參考施工細節。

Windows 施工方式

Windows 最大刀闊斧的部分是 Alt(左) 與 Ctrl(左) 的直接對調。原本希望最好可以全部邏輯都用 AutoHotKey 來處理就好,但如果把這件事交給 AutoHotKey,我們日常依賴的 Alt + Tab 這個工作切換會壞掉,是否有機會完美解決還要請大神指點迷津。

所以目前的手段是,Alt(左) 與 Ctrl(左) 對調這件事交給微軟的親兒子 PowerToys 來在更底層的層面處理:

awesome-keymap-win

而方向鍵跟行首行尾的部分交給 AutoHotKey,腳本如下:

1
2
3
4
5
6
7
8
9
10
11
12
#Requires AutoHotkey v2.0
;Made by Shuai

*>!i::Up ;
*>!k::Down ;
*>!j::Left ;
*>!l::Right ;
*>!u::Home ; 行首
*>!o::End ; 行尾

LCtrl & Tab::AltTab
LCtrl & Capslock::ShiftAltTab

其中 LCtrl & Tab::AltTab 的部分是讓我們在 Alt(左) 與 Ctrl(左) 已經交換的前提之下,依舊可以用原本的鍵位進行工作切換:

keyboard-layout(12)

至於 LCtrl & Capslock::ShiftAltTab 就是目前不得已的次佳替代,用 Ctrl(左)+Capslock 來暫時頂著反方向的工作切換,因為搭配 shift 的方式無法在 AutoHotKey 中被實現,還請路過的大神指教。

Mac 施工方式

Mac 就一站式使用 Karabiner-Elements 解決即可,腳本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"type": "basic",
"from": { "key_code": "j", "modifiers": { "mandatory": ["right_command", "left_command"], "optional": ["any"] } },
"to": [{ "key_code": "left_arrow", "modifiers": ["left_option"] }]
},
{
"type": "basic",
"from": { "key_code": "l", "modifiers": { "mandatory": ["right_command", "left_command"], "optional": ["any"] } },
"to": [{ "key_code": "right_arrow", "modifiers": ["left_option"] }]
},
{
"type": "basic",
"from": { "key_code": "i", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "up_arrow" }]
},
{
"type": "basic",
"from": { "key_code": "j", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "left_arrow" }]
},
{
"type": "basic",
"from": { "key_code": "k", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "down_arrow" }]
},
{
"type": "basic",
"from": { "key_code": "l", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "right_arrow" }]
},

{
"type": "basic",
"from": { "key_code": "u", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "left_arrow", "modifiers": ["left_command"] }]
},
{
"type": "basic",
"from": { "key_code": "o", "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } },
"to": [{ "key_code": "right_arrow", "modifiers": ["left_command"] }]
}

其中前兩個是將 Cmd(左) 在搭配方向時可以變成逐詞修飾,剩下的就是搭配 Cmd(右) 的方向鍵跟行首行尾操作。

要注意 Karabiner 有順序權重,如要使用請注意順序,逐詞的部分要設置在方向鍵之前。

雜症處理

太多修飾鍵一起按會觸發很多 Office 365 或是 Copilot 相關的功能。我這邊的情形是,即使只是 Win + Shift + Alt + j/l,雖然我期望的 Win + Shfit + 左右方向鍵(將目前視窗移動到雙螢幕的某一個螢幕)確實有生效,但我的 Copilot 會被呼喚出來,這可不行。

我們在 PowerShell 中改寫登錄檔來解決:

1
REG ADD HKCU\\Software\\Classes\\ms-officeapp\\Shell\\Open\\Command /t REG_SZ /d rundll32

寫在最後

本篇分了幾個階段,從 Mac 筆電、Windows 筆電跟 PC 三個設備輪流接力撰寫,受益於本套操作術,心思從來不曾因設備的異同而有所擾動,可謂下筆如有神、絲毫不分神。

雖然這次以《運籌帷幄的鍵盤操作術》作為標題,提供了一套方案,形成了所謂「操作術」。然而我個人更想傳達的是一個使用哲學,也就是「運籌帷幄的鍵盤使用哲學」。只要可以讓使用者擁有一個流暢、不中斷、且一致的打字體驗,那在我們的這個使用哲學中,就是好的「術」。

因此,按照這個邏輯,你要把以上招式套用在 Linux 上自然也是可以的,吧。我個人沒有折騰過這件事,就不多置喙了。

好的,行文至此,推坑結束!謝謝主持人 Wiwi 舉辦的盛會,給了我寫作動力。如果有大神經過,針對遺留未解的問題,還請指點指點;如有其他思路或想法,我們一起討論討論。