简短回答:macOS 没有关闭 ⌘W 的开关,但你可以在“系统设置”中按 App 逐个改动它。
步骤如下。如果你要关闭的是整个 App 而不是标签页,那用的是 ⌘Q,另有一篇单独的指南。
Command W 会关闭当前标签页。如果这个 App 没有标签页,或窗口只剩最后一个,它就会 转而关闭整个窗口。就是这么简单,这也是为什么同一个按键在不同 App 中感觉 像是做着两件不同的事。
它和 Command Q 不一样,后者会退出整个 App 并带走所有窗口。这两个键彼此相邻,这也是大多数人来到这里的原因。
要有意关闭一个标签页:Command W,或点按标签页上的小叉号。要关闭一个窗口但保留 App 运行,在大多数支持标签页的 App 中使用 Shift-Command-W。要在不小心关闭标签页后找回它,用 Shift-Command-T。
⌘W 会关闭当前标签页。这几乎总是你想要的效果,但这也正是它危险的原因:你每天不看一眼就按下它几十次,而唯一一次那个标签页是一份写了一半的表单,或是你花了十分钟才找到的搜索结果时,它就毫无确认地消失了。
它也紧挨着 Cmd Q。差了一个键,你丢掉的就不是一个标签页,而是整个窗口。
在 Safari 中,Cmd W 关闭的是标签页,Shift-Cmd-W 关闭的是窗口。在没有标签页的 App,比如预览或文本编辑中,Cmd W 会直接关闭窗口,这就是为什么同一个按键组合感觉起来并不一致。
macOS 允许你重新分配任何菜单项的快捷键。把 Cmd W 指向一个无害的组合键,它就不会再关闭任何东西了。
Close Tab。⌘W 在该 App 中现在不会有任何作用,菜单会显示新的组合键。
菜单标题必须完全一致。macOS 是按字面文字匹配的,所以 Close Tab 和 Close 是不同的字符串,一旦不匹配就什么都不会发生,也没有任何错误提示告诉你原因。打开该 App 的“文件”菜单,把你看到的内容原样复制下来。
在改动任何东西之前,先了解撤销方法。Shift-Cmd-T 能在 Safari、Chrome、Firefox 和 Edge 中重新打开最近关闭的标签页,并且可以反复使用,一路找回好几个之前关闭的标签页。
完全退出后,Safari 还有“历史记录”、“重新打开最近关闭的标签页”,以及“重新打开上次访问的所有窗口”。不过无论如何,你输入到表单里的文字通常都已经无法恢复,而这正是大家真正在意的部分。
Cmd Tab 是另一个按键,也是另一个问题。Cmd W 关闭标签页,Cmd Tab 切换 App,本页的任何内容都不会改变应用切换器。macOS 对它也同样没有设置,而且解决办法也不一样:如何在 Mac 上禁用 Cmd Tab。
“App 快捷键”一次只能处理一个 App。没有全局开关,所以要保护 Safari、Chrome、邮件和你的编辑器,就需要四条记录,换一台新设备还得再做一遍。
而且这是全有或全无的。一旦挪走了,这个应用中的这个快捷键就没了,包括你确实想用它的那些时候,而 ⌘W 在大多数时候其实很有用。
大多数人真正想要的行为不是一个被禁用的按键,而是一个问句。让 Cmd W 照常有效,但在少数几个丢失标签页会造成麻烦的 App 里,让它在关闭前先检查一下。
这需要一个介于按键和 App 之间的东西,而这正是Still Dock,锁定你 Mac Dock 的这款 App所做的事。你选择要保护的 App,它会在这些 App 中先行询问,而 ⌘W 在其他地方照常运作。它以同样的方式保护⌘Q,考虑到这两个键是邻居,这一点很重要,而且它还能专门保护一款浏览器不被 ⌘Q 关闭。
使用不止一块屏幕?Dock 也会在它们之间跳动,这是另一个问题,有它自己的解决办法:如何将 Mac Dock 固定在单块屏幕上。
“系统设置”里没有。按设计,“App 快捷键”是按每个应用单独设置的,所以要实现全局改动,需要一个介于按键和 App 之间的工具。
Command W 会关闭当前标签页,也可以点按标签页本身的关闭按钮。在大多数支持标签页的 App 中,Shift-Command-W 会关闭整个窗口。如果某个 App 停止响应,标签页也无法关闭,用 Command Q 退出,或从苹果菜单强制退出,是备用方案,不过这样会同时丢失该 App 中打开的其他一切内容。
不会。关闭功能依然有效,可以从菜单,也可以用你的新快捷键。你只是挪动了这个快捷键,并没有移除这个命令。
因为那些 App 没有标签页,所以要关闭的当前对象就是窗口。在支持标签页的 App 中,窗口快捷键通常是 Shift-Cmd-W。
Cmd Q 会退出整个 App。参见如何禁用 Cmd Q,其中包含针对“退出”的同一个“App 快捷键”技巧。
它会把页面找回来。输入到表单里的文字通常还是会丢失,这正是为什么一开始就不关闭它比任何恢复技巧都更有价值。