在他最新的博客文章中,Aza Raskin –界面设计专家,Firefox的创意总监,也是我的英雄之一Jef Raskin的儿子–解决了我最老的臭虫之一,Alt-Tab。 Aza是个聪明人,但令我失望的是,他的帖子解决了一个我认为不重要的问题,但未能解决我认为Alt-Tab的真正问题。 但是,让我从一些背景开始。
(我每天都使用Windows和Mac,并且在这篇文章中倾向于交替使用Alt-Tab和Cmd-Tab。)
历史(Windows正确的东西)
Windows自Windows 1.0以来就具有Alt-Tab,尽管自Windows 3.1(1992)以来仅以其熟悉的视觉形式实现。 到目前为止,我知道许多人从未使用过该快捷方式,但我个人无法想象如果没有该快捷方式,便会使用多任务操作系统。

我发现最初在Apple Macs上缺少它是不可接受的。 在90年代,基于Mac的工作室中,我始终依靠第三方扩展Task Switcher来提供缺少的功能。
当苹果公司最终引入本机Cmd-Tab(我认为是在OS 8.5中)时,他们一开始就弄错了。 它按字母顺序循环显示正在运行的应用程序,而不是像Windows¹这样在最近使用(MRU)的应用程序之间进行切换,因此我不得不继续使用该扩展程序。 他们在以后的OS更新中将其更改为MRU顺序。 (谢天谢地,微软没有考虑为其申请专利。)
不幸的是,在接下来的插曲之后,我将继续讨论Mac的另一种差异。
插曲:为什么最近使用(MRU)的命令比骑自行车(和Exposé)更好?
第一个原因很明显:如果Alt-Tab只是以固定的顺序(例如,按字母顺序)在打开的窗口中循环,那么平均而言,只需要太多的跳动就可以找到所需的项目。
但是拉斯金提到了更强大的理由: 空间记忆 。 如果快捷方式始终切换到最近使用(MRU)项,则可以快速教会您进行切换而无需考虑或查看屏幕。 空间内存很棒,因为它是背景知识,而不是前景知识。 就像伸手去拿鼠标一样,它不会打扰您的注意力或您在屏幕上看到的地方。
值得一提的是,使用单个快捷键仅在两个窗口之间来回切换的这种“切换”行为本身就是一项重要功能。 它允许快捷方式用于比较两个窗口的内容,而不仅仅是从一个窗口切换到另一个窗口。 (Photoshop中的“撤消/重做”快捷方式(两者均为Cmd-Z)也很好地使用了此原理。)
因此,MRU顺序使您几乎可以在下意识之间切换两个任务。 我个人已经学会了在不依赖视觉辅助的情况下(最多仅使用空间内存)在多达3个应用之间切换。 要进行更多的切换,我需要查看接口,但是MRU排序仍然减少了我需要Tab的次数。
Mac的麻烦
由于Mac以应用程序为中心的模型而不是Windows以文档为中心的模型,因此Mac上的Cmd-Tab不能比Windows更好地工作。 例如,在Windows中,您可以在两封电子邮件或两个浏览器窗口之间进行Alt-Tab键; 在Mac上则无法。 要在Mac上的应用程序窗口之间切换,您必须使用其他快捷方式Cmd-〜(波浪号),该快捷方式再次使用循环而不是MRU顺序。 在Mac上,Cmd-Tab最令人讨厌的习惯是将应用程序的所有窗口置于前台,通常会遮盖您要比较的窗口。
我相信窗口切换更接近此快捷方式实现的思维模型。 线索在原始功能名称中:“任务切换器”。 它在“我正在做的事情”之间切换-我不在乎它们碰巧位于哪个应用程序中。因此,将其视为“应用程序切换器”就是错了。
根据我的理论,Mac上的任务切换功能的不足促进了Exposé的发展,我认为这是一种粘贴式解决方案。 Exposé很不错,但是它没有利用空间内存,而是迫使您查看界面。

我承认这是有争议的:有些人(令我惊讶的是)发现Mac上的应用程序切换比Windows上的窗口切换更自然。
真正的问题
随着越来越多的应用程序采用选项卡式工作区,无论使用哪种操作系统,Alt-Tab的用处都越来越小。 这对于浏览器尤其严重,因为如今我们越来越多的日常任务发生在浏览器中。 您不再只是“浏览”。 就像您经常编写文档,管理日历,提交错误报告等一样。我经常发现自己在尝试做的两件事之间自动尝试Alt-Tab,但是失败了,因为它们恰好位于两个单独的Firefox选项卡中。 然后我必须使用鼠标。
在Windows中,我可以通过打开更多浏览器窗口来稍微改善这种情况。 这样,我可以使用一个窗口,例如,用于Google日历的窗口,用于GMail的窗口,用于我正在撰写的博客帖子的窗口,具有很多我正在阅读的内容的多选项卡窗口,等等。在OS XI上可以t,因为只能使用Cmd-(Shift)-〜循环显示应用程序窗口。
切换选项卡的键盘快捷键通常是Ctrl-Tab(在Mac和Windows上均如此),但是同样,这会循环而不是使用MRU(Ctrl-Shift-Tab方向相反)。 有趣的是,有一些应用程序选择将MRU与Ctrl-Tab结合使用,例如oXygen(我最喜欢的HTML编辑器)。我在使用该应用程序时非常感谢。
此外,大多数应用程序还具有明确的方向快捷键,可在选项卡之间循环显示,例如Mac上的Cmd-Alt-Left / Right箭头和Windows上的Ctrl-PgUp / PgDn。
阿扎·拉斯金的建议

我很失望Raskin(显然是终身的Mac用户)隐式接受“应用程序切换”作为快捷方式的重点。 正如我在上面试图解释的那样,从根本上说,它比任务切换有用。
在他的文章中,他试图改善MRU的缺点。 (他甚至没有提到骑自行车,所以我认为他不赞成骑自行车。)拉斯金说,MRU的缺点是它仅对在两件事之间切换非常有用(他说的是应用程序,我想说的是Windows),并且不仅如此,您还挫败了您形成空间记忆习惯的趋势。 我个人没有遇到他使用3种应用程序描述的问题。 在我的空间记忆中,Cmd-Tab切换到最后一件事,而Cmd-Tab-Tab切换到最后一件事,这是硬线。 除此以外,我还需要将注意力转移到切换器界面上,而空间存储不再有帮助。 但这并不常见。
然后,他提出了一个“尊重习惯的MRU”(HRMRU),以解决我没有意识到的这个问题。 他思考使用启发式甚至是马尔可夫模型来检测用户的习惯。 就我个人而言,由于他本人描述的原因,我认为它失败了–这只会导致看似反复无常的界面。
但是,我对拉斯金的文章存在的更大问题是,他没有解决此快捷方式的实际使用问题:由于制表符而导致的MRU丢失,以及按顺序排列的MRU和开关同时存在。 (这是Mac OS上更大的问题,它具有3种切换模式:应用程序,窗口和标签页,其中两种不使用MRU。)
我的建议
选项卡式界面不会消失。 它们是管理不断增加的窗口数量的必要方式。 如果必须在所有这些之间都使用Alt-Tab,则可能超过100个。因此,我认为两种切换模式是不可避免的。
因此,我建议只需要两个快捷键: Cmd-Tab用于窗口切换(在Windows上为Alt-Tab)和Ctrl-Tab用于在窗口内进行选项卡切换。 (或者在不使用制表符的应用程序中切换文档。) 两者的工作方式应完全相同:MRU order ,并添加Shift以颠倒顺序。 没有理由存在“应用程序切换”快捷方式。
在Windows上,这将是一个很小的变化,但在Mac上,这是一个根本的变化。 也许,因为OS X坚持具有3种具有3种不同快捷键的切换模式,所以它们至少可以重新定义第二种Cmd-〜,以便在所有应用程序(例如Windows)之间进行窗口切换,而不是仅在当前应用程序内进行窗口切换。 所有人都应该使用MRU。
某些人可能会在选项卡式界面中发现MRU顺序令人困惑,并渴望换一个键盘快捷方式来循环使用,但始终可以提供不同的特定于应用程序的快捷方式。 例如,Firefox已经具有Cmd-Alt-左/右箭头(Mac)或Ctrl-PgUp / PgDn(Windows)。 这些是更适合循环的捷径,因为它们的名称暗示方向性。
- Windows实际上使用 Z-Order ,但是实际上这通常像MRU一样工作。 在Vista中,行为略有变化,但是最近的6个窗口仍使用MRU顺序。
[首次发表:2010年5月在 Isotoma博客上 。]