簡短的答案:macOS 沒有針對這個的開關,但你可以在「系統設定」中,把「結束」重新指定到一個你絕對不會不小心按到的快捷鍵。
步驟如下,還有為什麼偏偏是 Q 這個鍵,以及你已經弄丟的分頁該怎麼辦。這裡的一切也同樣適用於 Cmd W,那才是你原本真正想按的按鍵。
Command Q 會結束整個 App。每個視窗、每個分頁,一切都會立刻消失,除非有文件包含未儲存的變更,否則完全不會確認。Command W,也就是它右邊那個按鍵,則只會關閉最前面的分頁,而這正是讓大家中招的差異所在。
不行。結束一個 App 沒有復原功能,這是大多數人來到這裡想問的問題最誠實的答案。App 一旦消失,macOS 就沒有任何東西可以還原。你能做的是找回其中一部分內容:
回不來的是你在網頁表單中輸入的內容、還沒儲存的暫存檔案,以及當時視窗 擺放的確切位置。這才是大家真正在意的部分,也是為什麼阻止結束 App 比任何復原技巧都更有價值。
看看這些按鍵的位置。Q 就在 A 正上方,緊鄰 W 左側。Mac 上使用最頻繁的三個快捷鍵,全都集中在這一小塊區域:
其中一種情況,只是跟另外兩種差了一點點距離,而且只有一種會造成災難性後果。差了 W 幾公釐,Safari 關閉的就不是一個分頁,而是一切:每個視窗、每個分頁,以及你填到一半的任何表單。
不會有任何警告,也沒有復原功能。這就是整個問題所在,也是 Apple 從未重新檢討過的一項設計決定。
你無法全域關閉 Cmd Q,但可以依應用程式個別更改它,讓這個危險的快捷鍵不再輕易被你的小指按到。
結束 Safari。現在 Cmd Q 在那個 App 裡不會有任何作用。選單也會更新以顯示新的按鍵組合。
有兩件事容易讓人出錯。選單標題必須逐字完全一致,包含 App 名稱,所以應該是「Quit Safari」而不是「Quit」。而且你必須為每一個想保護的 App 都重複這個步驟,這正是這個方法最大的弱點。
不論如何都值得這麼做,因為這能把一場災難變成只是個小麻煩。
在 Safari 中,打開「設定」,接著「一般」,把「Safari 開啟時」設為「上次工作階段的所有視窗」。不小心結束程式後,重新開啟就會找回每個視窗和分頁。
它無法找回你在表單中輸入過的文字,所以這是個安全網,而不是真正的解決方案。
兩者都已經內建了 Safari 所缺少的防護。
這幾款瀏覽器竟然都各自獨立加入了這項功能,這說明了這個抱怨有多麼普遍。Safari 反而是例外。
另一種做法,是為 Command Q 加上一小段延遲,讓它必須表現出真正的意圖:輕點沒有作用,只有刻意按住才會結束。這能一次涵蓋所有 App,而不是一個一個設定。
有好幾款工具能做到這件事,其中也有免費的。這是正確的解決方式:你保留原本熟悉的快捷鍵,只是它不再會因為一次輕微碰觸就被觸發。
能鎖定 Mac Dock 的 Still Dock,把結束保護也做成了選單列裡的一個開關,就跟 Dock 鎖定放在一起,所以同一款能阻止你的 Dock 意外改變的 App,也能阻止你的 App 意外被關閉。同樣的概念,套用到 macOS 讓你能一個按鍵就搞砸的另一件事上。在其他人也會使用的 Mac 上,這個開關也能從你的手機切換:參見從你的手機阻止共用 Mac 上的 App 被 ⌘Q 結束。
使用不只一台螢幕嗎?Dock 也會在螢幕之間跳來跳去,這是另一個有各自解法的問題:如何讓 Mac Dock 固定在單一螢幕。
「系統設定」裡沒辦法。「App 快捷鍵」面板的運作方式是依應用程式而定,所以要做到全域的變更,需要一款位於按鍵和 App 之間的工具程式。
通常是三種情況之一。這個 App 忙碌或失去反應,所以完全接收不到按鍵動作,這時從 Apple 選單強制結束是唯一的出路。或是有份文件有未儲存的變更,儲存對話框正躲在另一個視窗後面。又或者這個快捷鍵已經被重新指定過,可能是你自己在「鍵盤快捷鍵」裡改的,也可能是某個 App 自己防護了它,這種情況下,「檔案」選單會顯示「結束」目前綁定的按鍵。
不會。「結束」功能依然有效,可以從選單或你新設定的快捷鍵執行。你只是搬動了快捷鍵,並沒有移除這個指令本身。
macOS 是依照選單項目的逐字文字來比對「App 快捷鍵」。「Quit Safari」和「Quit」是兩個不同的字串,一旦對不上就什麼都不會發生,也不會顯示任何錯誤告訴你原因。
在使用標準文件模型的 App 中,沒錯,你會看到儲存提示。但瀏覽器和許多其他 App 會直接關閉,這也是為什麼瀏覽器的情況最讓人受傷。
重新開啟該 App 並查看它的「歷史記錄」選單;在 Safari 中則使用「歷史記錄」再選擇「重新打開上次瀏覽的所有視窗」。表單裡輸入過的文字通常無法找回。
Chrome 和 Firefox 都內建了針對這點的防護,開啟不需要任何費用。參見阻止 ⌘Q 結束 Chrome、Safari 與 Firefox。