返回 2026-06-17
🛠 工具 / 开源

Key, in sightKey, in sight

aresluna.org·2026-06-16

Key, in sight

Marcin Wichary

Marcin Wichary

2026年5月12日 / 9400字,不过别担心

算是一份键盘自定义指南吧

我喜欢键盘,因为它们是人机交互中最有效的连接方式;我也喜欢键盘,因为它们很有趣。

不假思索地猛按大键很有趣,体验精准掌握复杂键盘快捷键组合的熟练感也很有趣。看到屏幕上的事物对你的操作做出反应感觉很棒,尤其是当这些事物真正懂你的工作方式时。而当你全神贯注于更深层的事物时,看着自己的手指仿佛能自行操作是件很神奇的事,这一切仅仅是因为你进行了某些设置,让肌肉记忆得以开花结果。

这不仅仅关乎效率。有时它更多地关乎与工具的连接,一种自定义或掌控的感觉,或者仅仅是对一次精心设计的交互的欣赏——所有这些美妙的底层瞬间,都在为整个过程注入能量。

不过,你要如何达到这种境界呢?当然,你可以买一把好键盘,并采用操作系统和你常用应用提供的快捷键。然而,在那之后,道路就变得相当陡峭了。搞一把“更高级”的键盘意味着要面对包裹在无尽专业术语中的无数选项。在软件方面,许多应用程序不仅名字相似,界面令人困惑,还会弹出可怕的对话框向你索要各种最高权限。

因此,我想写一份简短的指南,从硬件到软件,讲讲我自己是如何接触并逐渐熟练掌握一些键盘技巧的。也许这对你也有用?

我写这篇文章的目标是:

  • 用现代键盘和小键盘实实在在地做些有用的事情。
  • 在其中找到一些乐趣和享受。
  • 在这个通常如风暴港口般混乱的领域里,做一名冷静的向导。
  • 如果你一直很好奇却又感到望而生畏,或者如果你的键盘上有小键盘或一堆额外的按键,却不知道拿它们做什么……请继续往下读。在开始之前,有两点需要注意:

  • 这通常不会涵盖命令面板、文本扩展以及使用按键启动应用程序——这些都很有价值,但我认为通常不难实现。我想要些不一样的东西。
  • 这里的软件部分仅适用于 Mac。如果你希望我也介绍 Windows,请告诉我。
  • 如何寻找乐趣

    如何在硬件中寻找乐趣

    我的建议是:先给自己腾出空间,这样才方便尝试。换句话说,从增加按键开始。在欧洲老城繁忙的街道上开车一点都不好玩,你需要和大量已有的快捷键抢占空间,还得重新调整现有的惯例。我在工作中负责键盘快捷键的决策多年,这确实是个真正的挑战。

    相反——尽管这个比喻很糟糕——你需要一条全新的不限速高速公路,上面只有你一辆车,可以漫不经心地自由驰骋,没有速度限制。

    有两种方法可以实现:在你现有的键盘上开辟一块尚未被占领的空间,或者干脆去买新的按键。

    通过购买新按键来增加空间

    如果你有预算购买外接宏键盘,那就买一个,把它放在主键盘旁边,触控板或鼠标的另一侧。

    我尝试过几种不同的选择,我可以推荐:

  • Wooting UwU 提供了三个大键和三个小键;做工不错,价格也相对较低。
  • Megadolon Triple Knob Macro Pad 有很多旋钮,但它也为你提供了 16 个按键。
  • Work Louder Creator 系列小键盘价格较高,也有一些自己的小毛病,但总体来说布局不错,机械手感也很好。
  • 你也可以买一个不错的数字小键盘,然后把它的按键重新映射来做非计算类的工作。8BitDo 的产品不错且相对实惠,Keychron 也提供几款不同的小键盘——不过稍微贵一点。我还用过 Eweadn NK20。
  • 在所有这些键盘软件中,Wooting 可能也是唯一一个能被形容为“真的好用”的软件。

    我不推荐 Glorious GMMK Numpad,因为它价格昂贵,而且你无法轻松地重新配置滑块或灯光。

    我不推荐 Stream Deck,也不推荐 Ulanzi 和 Logitech 的仿制品,即使它们在概念上与上述产品相似。它们看起来像按键,但实际上是按钮:手感软绵绵的,只适合偶尔按一下,不适合频繁按压,对肌肉记忆没有多大帮助。我们的原则是:如果你要买新设备,它必须使用机械键盘轴体。我们将把这些按键投入实际应用,但它们也必须按起来非常舒服,才能发挥出魔力;我们想要的是对大脑有益,同时也能让心情愉悦的东西。

    如果你买了一个新的宏键盘或小键盘,它会为你提供一套完全没有冲突的新按键。我的建议是,将它们映射到 F1–F20,至于具体功能,留到电脑里的软件中去定义,而不是在键盘内部定义。

    在不购买新按键的情况下腾出空间

    如果你没有空间、买不起小键盘,或者出于人体工学或预防 RSI(重复性劳损)的考虑,这里有一些关于如何在现有键盘上为自己腾出空间的想法:

  • 如果你的键盘带有不常用的小键盘,你可以征用这些按键,让它们充当功能键。特别是数字小键盘上的 0 和回车键都比较大,匆忙敲击时手感会很棒!(每个数字小键盘的按键还可以配合修饰键使用:Numpad 0、⇧Numpad 0 和 ⌘Numpad 0 都可以执行不同的操作。)
  • 如果你的顶部已经有了 F1–F12 功能键,可以考虑给它们分配新任务。如果你已经将其中一些用于系统控制(例如音量、亮度或暂停音乐),你可以将功能键区分为两半,只腾出其中一部分来使用。但最终目标是永远不需要去摆弄 Fn 键,从而让这些按键尽可能易于使用。
  • 你可以创建一个全新的修饰键并将其分配给 Caps Lock。用户自定义的修饰键通常被称为“Hyper”。这就释放了 HyperA–Z、Hyper1–0,甚至 HyperSpace(哈)或 HyperEnter,你可以让它们做任何你想做的事。只要你克服了多年来刻意避免按下它的心理阴影,你会发现这个按键的位置其实很好,按起来也非常有趣。
  • 认领键盘上其他几个你从未按过的按键。对 Scroll Lock + Print Screen 这座孤岛行使一下“征用权”?重新利用 Insert 和 Delete,或者 PgUp 和 PgDn?或者,也许你的键盘上有几个你从未碰过的奇怪额外按键,正好可以给它们派点新用场?
  • 如果你已经有了游戏摇杆或游戏手柄,并且觉得手感不错,它们可能也是个很好的候选方案。我们将要讨论的工具,能够像响应按键一样完美地响应摇杆和游戏按钮的操作。
  • 如何利用软件寻找乐趣

    这部分你无法跳过,遗憾的是,它也更难让人享受其中。对于实体键盘,你至少还能沉醉于它的灯光,欣赏它的做工,享受敲击的手感。但用于键盘自定义的软件却鲜有……让人舒心的。它们总是伴随着粗糙的界面、吓人的权限窗口,以及晦涩难懂的术语。这或许能在“我非要弄懂它,让它知道谁才是老大”的意义上激发你的斗志——但起初它绝对令人望而生畏。

    你通常还需要使用不止一个应用程序才能搞定。此外,以下两点也是事实:没有任何一个应用能包揽一切,而且很多应用的功能存在重叠。

    我稍后会更详细地介绍软件,但首先,我只想向你展示我选择怎么做。

    我的配置

    以下是对我切实有效的具体方案。

    硬件

    我知道我的键盘看起来很怪,但抛开那些奇怪的设计,它其实是一把相当标准的 QWERTY 键盘。

    我的左侧有一个小型数字小键盘。我通过它的软件进行了自定义,将这些按键映射为 F1–F20。我把这些按键分成了两半——一半是系统快捷键,另一半是当前应用的快捷键——并且安装了不同的键帽,以帮助我记住这种划分。

    我让灯光保持安静,只使用固定的橙色,这样既能与我的整体主题相匹配,也能让我心情愉悦。

    许多键盘的灯光在出厂时都是非常花哨的彩虹色,而且闪烁得很快。我已经过了喜欢那种风格的年纪了。我想大多数人也是如此。

    我还有一个装在大盒子里的大号街机按钮。说来话长,但我当时定制它就是觉得按下去可能会很好玩,你猜怎么着:按下去确实很好玩。严格来说,它是一个摇杆按钮,而不是按键,但它像键盘一样通过 USB 连接,对我使用的软件来说没有任何区别。既然提到了软件……

    关于软件

    我的首选是 Keyboard Maestro。它有些复古,这既是它的优点,有时也是缺点。它的用户界面有些古怪,偶尔令人望而生畏,但在其他方面却考虑得很周到。它功能强大,我觉得你会越来越喜欢它,它也会伴随你成长——我是从下面将要展示给你的简单功能开始用起的,然后不断摸索出越来越多的用法。(此外,这款应用仍在更新中,并且拥有一个规模不大但非常投入的社区。)

    这是一个控制中心,它会根据所有的上下文环境来决定 F1–F20 的真正含义。当键盘发出按键信号时,它代表 F1,但在信号到达指定的应用程序之前,Keyboard Maestro 会将其转换为更相关的操作。

    我偶尔也会使用其他工具——通常,你其实别无选择!——但我会尽量将所有逻辑集中在这里,并将其视为主要的“调度器”。如果在 Keyboard Maestro 和其他地方都能实现某个功能,我会把它放在 Keyboard Maestro 里。至于其他工具:

  • 我安装了免费的 Karabiner Elements,它在处理一些底层操作时非常有用。它还自带了一个实用的按键事件测试器。
  • 我偶尔会使用 Shortcuts(快捷指令)和其他 macOS 内置功能,用于轻量级的文本扩展,以及禁用一些内置快捷键(比如用于隐藏 Dock 的 ⌘⌥D)。
  • 安装 Keyboard Maestro 应该是安全的,但有一个例外:它会更改你的 ⌘Tab 应用程序切换器。不幸的是,这并不是一个正向的改变。虽然 Keyboard Maestro 非常擅长在后台串联击键逻辑,但它大部分可见的 UI 都不是很吸引人,这个切换器也不例外。因此,安装后,请点击 Switcher Group,然后取消勾选 Enable Macro Group。

    除了不够美观之外,Keyboard Maestro 的应用切换器在交互方面也存在一些问题。

    Keyboard Maestro 提供 30 天免费试用。在此之后,截至撰稿时,它的一次性买断费用为 36 美元,感觉非常合理。我不知道还有其他更便宜(或免费)且提供类似功能的应用,能让我在使用时不至于抓狂。

    选择你的专属路线,继续阅读

    我想先看示例,然后再(可能)了解理论

    我想先了解理论,然后再看你的示例

    我编写的最棒的键盘快捷键

    这是我在自己的配置中发现的最有用、最令人愉悦的部分。其中一些内容可能与你的工作无关,但或许能为你提供灵感或一个好的起点。

    一旦你掌握了某些基本概念,一切就会变得简单!下面的 25 个示例,每一个都试图展示一个你可以付诸实践的新想法。

    我修复了相互冲突的快捷键。

    肌肉记忆是非常美妙的。它可以将繁琐的操作转移给大脑的其他部分处理,让你能够专注于重要的事情。它可以让你在处理事务时如飞一般。它还能帮助你进入心流状态。

    但是肌肉记忆需要一致性。我在各种应用中进行大量写作,特定操作行为的细微差别会让我的手指感到不适。粗体和斜体的操作方式总是一样的,但当涉及到删除线、引用、标题、分隔符和待办事项等功能时,快捷键就变得五花八门了。

    例如,我习惯按 ⌘⇧X 来添加删除线,但 Bear(一款笔记应用)的快捷键是 ⌘⇧U,而 Apple Notes 根本没有提供快捷键。在这两种情况下,该命令都存在于菜单中,因此解决此问题的简单方法是进入“设置”,根据菜单名称重新分配快捷键。或者,你也可以使用 CustomShortcuts 应用,它提供了更紧凑的 UI 和自动补全功能。

    但我喜欢在 Keyboard Maestro 中统一处理这一切(并且像躲避瘟疫一样避开系统设置),所以我改在那里进行操作:

    在 Keyboard Maestro 中执行此操作的好处是,我还可以修复 Medium 的快捷键。Medium 运行在 Chrome 中,这让事情变得复杂——我不想更改 Chrome 中每一个 Web 应用的快捷键!——但是 Keyboard Maestro 允许针对特定的标签页进行设置,因此我可以将引用的快捷键从 ⌥⌘5 统一为 ⌘':

    不过,该如何选择正确的快捷键呢?我的建议是:听从你的手指。如果你已经习惯了某些组合键,只需让它们在其他应用中也能生效即可。

    我删除了一些我真心讨厌的快捷键。

    我经常使用 Slack,在 Slack 中我不断地按 ⌘T 来搜索某人或某个对话。但是 ⌘T 的问题在于它紧挨着 ⌘R,有时我的手指在按下时会顺带碰到那个快捷键,从而触发重新加载——这虽然不是什么灾难,但一天发生几次也确实令人沮丧。

    系统设置显然不允许你直接删除快捷键,但你总可以分配一个你绝对不会去按的新快捷键,例如像 ⇧⌃⌥⌘F10 这样离谱的组合。

    但是,像这样在菜单中显示快捷键让我感觉很不优雅。因此,在 Keyboard Maestro 中,我只是为 Slack 创建了一个分类,添加了一个由 ⌘R 触发的动作,然后就……完事了。我没有为它绑定任何内容,所以这个动作实际上什么也没做,但它的存在本身确保了按键永远不会传递到 Slack。

    我对“显示拼写和语法”做了类似处理。它的快捷键是 ⌘⇧;,有时我会连同我经常使用的 ⌘⇧L 一起按下。所以,我彻底禁用了它。

    我添加了一些快捷键来帮助培养我的肌肉记忆。

    后来,我把 Gmail 变成了一个拥有独立窗口的 Web 应用,而不是把它当作浏览器里的又一个标签页。但出于习惯,我偶尔还是会在 Gmail 里按下 ⌘N 或 ⌘T。

    其实很简单就能修改设置,让这些按键切回 Chrome 并在那里打开新窗口,就像它们以前所做的那样。

    好了,我们统一了一些快捷键,也移除了一些多余的操作。但这多少有些无聊。

    通常情况下,除非你明确知道自己想要什么,并且对现有的操作有难以忍受的痛点,否则我建议一开始不要去纠结那些应用程序里原有的快捷键,更不要没完没了地去优化它们——这实在没什么意思,毕竟我们费尽心思弄来这些新按键,可不是为了干这些的。

    所以,我们还是用这些按键来做点别的事吧。

    我在一个巨大的按钮上找到了不少乐趣。

    我偶尔会做一些演讲,但我平时用来预览和排练的 Keynote “播放演示文稿”快捷键,竟然是那个极其令人失望、毫无气势的 ⌥⌘P。

    另一方面(好吧,其实还是同一方面),什么都不想,直接狠狠拍下一个巨大的街机按钮,这种感觉别提多爽了——按下按钮,看着幻灯片瞬间霸占整个屏幕,这体验极其令人满足。我希望自己的演示文稿就像是在电影院里放映一样,当 THX 的标志闪现并震撼全场时,所有人都安静下来。

    事实上,还能玩出更多花样。

    我平时还会扫描大量的科技史文献。扫描工作其实比你想象的还要枯燥——你并不能总是优雅地把一张纸放在扫描仪面板上,按下按钮去“保存历史”;有时候,你不得不把一本又厚又重、半开着的书硬塞进去,然后用手硬撑着保持正确姿势长达 20 秒甚至更久。

    在这种身体扭曲、双手被占用的情况下,想要用鼠标去精准点击屏幕上的“扫描”按钮,甚至去按不止一个键的复杂快捷键,条件实在有些苛刻。因此,我也把那个大按钮连接到了启动扫描的功能上。只要扫描软件处于打开状态,Keyboard Maestro 就会触发该操作,而无论该软件当前是否处于焦点状态。这一点非常重要,因为我在扫描时经常需要切到 Finder 去检查结果,我希望随时随地按下按键就能触发操作。

    我使用的扫描软件挺不错,它允许我在当前扫描完成前就将下一次扫描加入队列,所以我完全不用担心时机的问题。就算软件没那么好用,我相信 Keyboard Maestro 也能帮我搞定。

    我还在笔记本电脑键盘上,将同样的功能分配给了 Fn 键。对我来说,Fn 键原本挺没用的,而且它位于边角位置,按起来也很方便。(像 Keyboard Maestro 这样的工具允许你为一个功能设置多个触发键,这功能非常实用。)

    好了,这下有意思多了。

    我还给这个按钮设定了另一个功能:在各种通话软件中将自己静音。

    Google Meet、Zoom 和 FigJam 都提供了静音的快捷键——尽管各不相同——而 FaceTime 则只提供了一个屏幕上的按钮。Keyboard Maestro 能够统一处理所有这些操作,而且就像之前一样,它能根据当前正在运行的软件来选择正确的动作。(对于 FaceTime,它会通过调用菜单栏来实现。)而我需要做的,只是拍下那个巨大的街机按钮。

    我甚至可以这样设置逻辑:如果该软件在后台运行,按下按钮就能迅速切过去执行静音操作,然后再切回我原本所在的地方,这实际上让我的按钮变成了一个“全局”快捷键。很少有软件能原生提供这种极佳的体验增强。

    现在这个功能极其好用,哪怕是一个突如其来的喷嚏,我也能瞬间按下静音并把它憋回去。

    我发誓,讲完这个,关于这个大按钮的话题就彻底结束了……

    最后,我还把那个大按钮绑定到了截取主屏幕画面的功能上。

    这样做很酷的一点在于,常规的截图快捷键需要你事先按住一个或多个修饰键。但修饰键并非完全没有副作用——它可能会关掉我恰好想要截图的提示框,或者改变光标的外观。而单键操作就没有这些问题。

    关于大按钮的故事到此结束:总的来说,我可能不太建议像这样让单个按键承载过多功能——这意味着我在开 Zoom 会议时无法进行扫描,或者在练习演讲时也无法用这种方式截图,尽管这些情况本来也极少发生。

    不过,让我们暂且放下大按钮,聊聊其他事情。

    我会阅读大量文档和 PDF,情况跟之前类似。Chrome、Internet Archive、Preview 和 Google Books 在该用哪些按键上各不相同,而 DevonThink 甚至根本没有用于翻页的键盘快捷键。

    Keyboard Maestro 让我得以统一现有的快捷键,而对于 DevonThink,我利用了它的一项高级功能:在后台通过工具提示的名称来查找相应的按钮。

    但最关键的是什么?我把这个功能绑定到了小键盘最底下的两个键上,纯粹是因为这样手感特别好。阅读时,我非常喜欢把左手放在那儿,一边翻页一边享受清脆的按键手感,同时右手放在触控板上进行缩放或其他操作。

    现在,我每天都能乐此不疲地进行成千上万次这样的操作。

    我掌控了时间与空间。

    当我进行设计或网页工作时,我希望作品在深色和浅色模式下都能呈现出良好的效果。但是每次都去“系统设置”里来回切换实在是太烦人了。于是我写了一个极简的 Shortcuts 脚本,并通过 Keyboard Maestro 将其绑定,毕竟 Keyboard Maestro 可以调用任何 Shortcut。现在,无论我在哪里,只需重重敲击一下那个专属按键就能切换深色模式,说实话,这感觉简直有点神奇。

    (顺便提一句——后来我发现 Keyboard Maestro 自带了“切换深色模式”的动作,这让我的操作变得更简单了,但我主要是想向大家展示调用 Shortcuts 是完全可行的。)

    接着,我设定用 Shift + 同一个按键来开启或关闭屏幕的 Retina 像素显示,这在测试时也非常有用。我使用这个功能的频率远不及深色模式,所以在这里搭配修饰键我也完全能接受。

    我搭建了一个稍微智能一点的“逃生舱”。

    我使用 Bear 来记笔记,并且有一个包含了所有待办事项的主笔记——但与此同时,我也经常需要查看其他笔记。

    我想要一个简单可靠的按键,无论我当前在做什么,都能让我直接跳转到那条主笔记:这相当于一个别出心裁的应用启动器。

    Bear 并没有提供智能的控制方法或 API,但我可以用“自动钢琴”那种机械模拟的方式来搞定,也就是直接重放我会按下的几个按键:切换到 Bear,模拟按下 ⌘⇧O,模拟输入主笔记的名称,按下回车键,然后再按几次向下方向键。这看起来有点滑稽,因为你能眼睁睁看着它完成这一系列动作,但效果出奇地好。

    我用一种可能打破了某些设计规律的方式将亮度和音量融合在了一起,从而清除了 Apple 那些奇怪的默认设定。

    不知出于什么原因,我就是喜欢手动调节亮度。可能是我不信任自动亮度那套机制,可能是我极度在意省电,也可能是我的眼睛比较挑剔——大概以上原因都有吧。

    我也受够了 macOS 默认用于音量和亮度的修饰键组合,所以我把这些功能全都集中到了我的键盘恰好有的同两个按键上,它们的表现如下:

  • 常规按下 = 音量调节
  • 按下 ⇧ = 以更小的步长精确调节音量
  • 按下 ⌃ = 调节左侧屏幕的亮度
  • 按下 ⌘ = 调节右侧屏幕的亮度
  • 为什么用 ⌃ 和 ⌘?因为 ⌃ 在左边,而 ⌘ 在右边。这样我更容易记住,即使这种布局只在我的桌面上才成立。

    我在我的代码编辑器中添加了标签包裹(tag wrapping)功能。

    这个功能让我非常开心。我所有的内容都是用 HTML 写的,但输入带有尖括号的 HTML 实在不是什么有趣的体验。

    我注意到自己花了很多时间一遍又一遍地输入相同的标签,所以我添加了一些类似展开(expand)的功能:选中文本后按下一个键,它就会变成一个 <a> 链接。另一个键可以为其设置特定样式,还有一个键可以将其设为斜体。

    无论字符串有多长它都能起作用,而且我觉得它用起来真的很有趣——同样,左手放在按键行上,右手使用触控板快速选择文本片段。

    我知道我的代码编辑器可能在……某个地方有这个选项。但我对代码编辑器的界面有些发怵,而且这样做还能让我在其他地方低成本地复用它。

    我设置了全局录制和播放。

    这是该领域真正被低估的利器之一,我最初是在一款名为 Sublime Text 的文本编辑器中喜欢上它的。如今,Keyboard Maestro 让我能在任何地方使用它。

    它的基本原理很简单:你将一个键设定为“录制”,另一个键设定为“播放”。然后,你可以随时录制一系列按键操作,并按你的意愿播放任意次数。

    它看似简单,但强大的地方恰恰在于其简单性。随时待命、即用即弃的特性,带来了一种令人耳目一新的、随性自然的自动化体验。

    举个例子:正如你在上面的视频中所见,我想在 Keynote 中制作一个小网格。于是我录制了粘贴一条线并将其移动适当距离的操作。接着,将这段操作播放几次,我就极快地得到了想要的结果。

    另一个例子:有时当你粘贴一大块文本时,段落之间会出现多余的空行,或者段落间距不够。

    有很多方法可以解决这个问题。如果你擅长命令行,可以写个脚本;如果你擅长正则表达式,可以使用查找和替换。但对我来说,这两样我都不常做所以也不精通,因此通常只会手动一段一段地处理。而这项功能让我能用极其轻量的方式将这一步自动化——我录制一次自己的操作(⌥↓, →, Return),然后重复播放几十次即可。

    我拼凑出了一条有趣的重新加载链。

    在开发 Chrome 插件时,想要立即看到效果是很繁琐的,因为你必须以正确的顺序重新加载一些东西。因此,我安装了一个 Chrome 扩展程序来重新加载我正在编写的插件,并将我的宏键盘上的一个按键绑定来执行以下事件序列:

  • 在代码编辑器中保存当前工作
  • 跳转到 Chrome 并在后台按下“重新加载扩展程序”按钮,重新加载我的插件
  • 然后,按下 ⌘R 重新加载网站,以查看插件的效果
  • 最后,返回编辑器
  • 美妙之处在于,尽管这非常像“自动钢琴”,但它的速度极快,简直就像魔法一样——我按下按键,立即就能在右侧看到结果,而且上下文没有任何改变或丢失。我可以像什么都没发生过一样继续编写代码。

    我还添加了一些有趣的 Photoshop 流程,它们……衔接得非常完美。

    扫描之后是漫长且通常枯燥乏味的后期处理:让扫描件变得更亮、将它们拉直、清理边缘。

    当我开始审视自己是如何进行这项工作的——有时一次性批量处理数百页——我注意到了几个规律:

  • 我经常通过菜单进入亮度/对比度窗口,然后不断尝试不同的数值。因此,我创建了一个动作,将亮度和对比度提高 10%,并将其分配给一个快捷键。现在,我只需按一次、两次、三次,直到看起来满意为止。如果调过了头,我随时可以撤销。
  • 我总是用鼠标调整窗口大小,以便在边缘留出一些空间。这使得围绕它们进行绘制和清理变得更加容易。因此,我添加了一个快捷键来将窗口稍微调大,而无需触碰鼠标。
  • 我注意到,在拉直图像时,我必须用鼠标点击屏幕上的一个按钮,因为它没有键盘快捷键,也无法分配快捷键。但是 Keyboard Maestro 也可以让你自动点击按钮。
  • 然后——这一点很重要——我将这些操作分配给了相邻的按键。

    我知道这听起来有点傻,但现在我可以把左手放在这些按键上,右手放在触控板上,播客一开,极其轻松地搞定这些扫描件,而且在这个过程中甚至会有一种奇妙的爽快感?相邻的按键意味着肌肉记忆开始形成得非常快,很快我就只需看着手指自动操作了。

    我用快捷键取代了一些书签小程序。

    我使用 Web Archive 来获取页面的旧版本,以前我的浏览器工具栏里有一个专门用来点击的书签小程序。

    你大概可以为书签小程序分配一个快捷键,但我用另一种方式进行了简化:我让 Keyboard Maestro 按下 ⌘L(转到 URL 栏),然后在前面输入 web.archive.org/,最后按下回车键。

    这既简单又有趣,我也想向你展示它,因为这是解决一些以前只有书签小程序才能做到的事情的有趣方法。额外福利:这将在所有浏览器中生效,而无需逐一进行手动设置!

    我添加了一套固定的快捷键用于测试速度。

    这类似于深色模式和视网膜屏幕之类的情况。在进行网页设计时,我有时需要模拟慢速网络或断网状态,以确保我的网站在比完美无瑕的有线家庭网络更差的条件下也能表现良好。此外,我真的希望能对此进行紧凑、即时的控制——例如,在页面初始加载时切换到“快速”,随后立即切换到“离线”。在这里,拥有出色的键盘界面并不是用得快和用得慢的区别,而是用和不用的问题。

    Chrome 网页检查器为此提供了一点 UI,但它深埋在抽屉里的标签页里的菜单中。值得称赞的是,他们也提供了一些快捷键绑定到这些选项,但快捷键选项仅限于修饰键。

    Keyboard Maestro 给了我一个更好的解决方案:

  • 首先,如果网页检查器没有打开,就先打开它
  • 使用我的宏键盘按键,无需任何修饰键,因此非常快速便捷
  • 甚至显示一条小消息来确认我所做的操作(使用 Raycast,因为我觉得 Keyboard Maestro 的视觉消息提示太难看了)
  • 我也让 Finder 变得更好用了。

    当我在 Finder 中处理文件时,有时想用特定的颜色标签来标记它们。然而,Finder 用于此操作的 UI 非常依赖鼠标,在进行复杂选择时显得很繁琐。

    在我的小键盘上,我并排设置了四个键,这样当我在 Finder 中时,前三个键会为我选中的任何内容(可以是一个文件,也可以是一百个)添加红色、黄色和绿色标签,而最后一个键则会确定性地清除所有标签。

    由于 Finder 打标签的界面有些混乱,这需要在比单纯的“自动钢琴”更底层的级别进行绑定,并使用诸如循环和变量等更高级的 Keyboard Maestro 功能。

    我非常喜欢使用它,因为它很容易记住,把我的左手移到这些键上,然后再回到 Shift 和 Command 来控制 Finder 的选择,感觉非常轻松,同时我的右手可以始终留在触控板上。

    我了解到你可以用一种奇妙的方式来控制你的智能家居。

    有很多方法可以通过不同的应用程序或适当的 API 事件来控制你的智能家居。但还有一种更简单的方法,作为入门也很有趣:通过打字来与 Siri 对话。这样一来,任何你能对 Siri 说的话都可以绑定到任意键上,这在 macOS 中开箱即用。例如,我可以将“厨房灯光 10%”绑定到 F5 键,或者将“降低室温”绑定到 F6 键。

    (遗憾的是,这种方法有其局限性,因为 Mac 上的 Siri 并非无所不能。但它是一个非常简单的起点。)

    而且它比用语音对 Siri 说同样的话运行得快得多,这是一个非常有趣的发现。

    所有这些都激发了我的兴趣,让我想去尝试一些新的、不同的、不寻常的东西。而这个或许是我绝对的最爱。

    在我的设计和写作中,我经常想使用 ⌘ 或 ⇧ 等符号来指代按键,所以我有了这个想法:如果我像按下修饰键一样,按下一个新的“打印图例”键,并与另一个或多个按键(如 ↓、Esc 或 Return)组合使用,会怎么样?这种组合会让它们的符号显示在屏幕上。

    这感觉比设置文本替换的标准方法有趣得多,并且能避免你去记住那些必须非常接近但又不能完全正确的奇怪输入咒语,因为有时你也想直接写出“Command”和“Shift”!

    它还有一个额外的好处,那就是它比普通的 macOS 文本扩展适用的场景更多,并且感觉有点神奇,因为……键盘本来并不是设计成这样工作的。但我的可以。看起来这个小键盘是那个巨大键盘的“老板”——一个真正的《料理鼠王》式的情境。

    我通过 JavaScript 与 YouTube 进行通信,以简化复杂的流程。

    如果我想把 YouTube 视频中的内容引用到我的博客中,YouTube 的文字稿就非常有用。

    如果你不知道 YouTube 有文字稿,那你并不是唯一一个!它不仅隐藏在几次点击和滚动之后,而且在你放大视频的那一刻就会重置。

    我没有使用“自动钢琴”式的操作,而是使用了 Keyboard Maestro 的 JavaScript 集成功能,在后台找到正确的按钮并点击它。然后我将其分配给了一个按键。

    我制作了一个超级奇怪的快捷键,我对此感到非常自豪。

    现在,带着更多的想法,我们可以回到我们开始的地方了。

    你有最喜欢的快捷键吗?有那种你就是很喜欢按的键吗?我建议购买一个外接小键盘,是为了自然而然地获得一些按起来很有趣的按键。但你在主键盘上也能获得这些。

    我最近最喜欢的一个“发明”是用 ⇧Space(Shift+空格键)来插入分割线。这在概念上(分割线代表长停顿)和助记法上(Shift 键和空格键都很长,就像分割线一样)都说得通。我在 Bear 和 Medium 中设置了它——在似乎没有分割线功能的 Notes 中,我只是让它输出一串连字符——我兴奋地开始使用它,然后……我发现了一个大问题。

    事实证明,我在打字时经常会按下 ⇧Space。手指既极其精准又相当粗心,结果是我经常在输入大写字母时过早地按下了 ⇧,从而误触了空格键。以前这没有任何影响,但新的快捷键意味着我的文档现在会充斥着莫名其妙的分割线。

    不过,我不想放弃我的想法。后来,我意识到了一件事:我的键盘上有两个 Shift 键。如果我要求 ⇧⇧Space——也就是同时按住两个 Shift 键呢?

    没有设计师会在任何应用中允许这样的快捷键,因为它有多个问题:不符合人体工程学、缺乏无障碍性,而且需要双手操作。但我不需要考虑所有人,只需考虑我自己。我知道自己在做什么。打字时,我的双手本来就在键盘上,而且无论如何分割线也不会经常出现。甚至还有一点诗意的是,它让人感觉有点“沉重”——打出分割线就像把纸从打字机上扯出来,再插入一张新纸一样。并且这三个连续的按键看起来像一条长线,这是一个很好的视觉助记法。

    这需要进行一些更深层的“手术”,因为 Keyboard Maestro 默认将两个 Shift 键捆绑在一起,但我还是把它实现了。

    同样的思路可以让你实现看似不可能的事情:将 Hyper 与修饰键组合使用,前提是你只使用单侧的修饰键。只需让 Hyper 代表你没有按下的那组修饰键,并检测另一组即可。这样你就可以让 HyperV 执行一种操作,而 HyperLeft ShiftV 执行另一种操作。

    我用一种轻量的方式解决了剪贴板历史记录的问题,这让我感到很高兴。

    有时我会不小心覆盖掉剪贴板里的内容,但这种情况还没多到让我需要花精力去学习使用一款剪贴板管理器;对我来说,那些工具感觉太臃肿了,甚至有些吓人。

    我是如何解决这个问题的呢?对我来说,最重要的是一个快捷键,于是我想到了 Caps LockV(也就是 HyperV,即 ⇧⌃⌥⌘V)。我认为这能确保我在慌乱之中也能想起它,因为它与 ⌘V 非常相似。

    但是我往里面接入了什么呢?Keyboard Maestro 自带剪贴板管理器,但它不太美观。我碰巧有 Raycast 的许可证,所以我接入了它:

    我知道 macOS Tahoe 有剪贴板管理器,但我不想升级到 Tahoe——不过一旦我升级了,并且喜欢它的功能,我应该能够直接重新配置快捷键指向那里。这也是自主掌控的另一个好处——随着时间的推移,你可以保留快捷键,但更换底层的实现。

    等等,不对,这是一个更好的解决方案。

    但即便是上面的方案,感觉也不太好。于是我又思考了一番。

    然后我顿悟了:在我的手机或 Apple TV 上,有什么非常自然的交互方式?那就是“长按以显示更多高级选项”。为什么 ⌘V 不能以同样的方式工作呢?正常按下是粘贴,但长按就可以呼出剪贴板菜单。在键盘操作中,长按在其他地方意味着重复输入,但我永远不想重复粘贴。

    这需要一些精细的“手术”:

  • 这一切都必须从 Karabiner 端开始,因为它的侵入性相当强。
  • 防止 ⌘V 重复触发很简单,只需在正确的位置添加 "repeat": false 即可。
  • Karabiner 不再通过像 F20 这样的一次性按键来传递信息,而是在后台直接与 Keyboard Maestro 通信,并要求其运行某个命令。
  • 这可以像上面那样调用 Raycast 的剪贴板,但由于第一次按下 ⌘V 会立即粘贴,而我不想改变这一点,所以它还必须先执行一次撤销操作。
  • 我让另一个大按钮做了一件无聊的小事。

    我还没完全想好旋钮能用来干什么。它们现在很流行,但除了调节音量、亮度和/或视频进度拖拽之外,我的想象力也就到此为止了——都是些相当基础的功能。

    不过很多旋钮同时也是按钮,所以我干脆把我的旋钮接到了 Raycast 的彩纸大炮上。

    然后我时不时就会按一下它,纯粹是图个乐子。

    选择你自己的冒险

    好了,例子就举到这里!现在……

    本文“选择你自己的冒险”这部分到此结束!

    一次按键的生命周期

    有很多键盘软件,它们都处于不同的层级。这是我对一次按键如何在系统中传递的心智模型:

    按键按下

    键盘固件应用

    按键和旋钮的基础配置、修饰键、键盘灯效、层。

  • VIA
  • 8BitDo Ultimate Software
  • Chrysalis
  • Wootility
  • 将左上角的按键设为等同于 Enter
  • 转动旋钮可调高或调低音量
  • F1 键输出“on my way”
  • USB 端应用

    重写按键,并根据按键来源的键盘进行更改。处理音量键和其他系统按键。

  • Karabiner Elements
  • Kanata
  • KMonad
  • 在任何键盘上按住 CtrlShift 都能让 HJKL 在全局变为方向键
  • 某个特定键盘的 Ctrl 键变为 ⌘
  • 阻止任何键盘上的 ⌘Q 在任何应用中起作用
  • 为命令分配快捷键的应用

    更改快捷键,主要是在应用菜单中。

  • Keyboard Shortcuts (macOS)
  • CustomShortcuts
  • 文件 > 打印现在变为 ⌘⇧P 而不是 ⌘P
  • 格式 > 斜体现在变为 ⌘⌥I 而不是 ⌘I
  • 禁用 ⌘⌥D 显示/隐藏程序坞的功能
  • 自动钢琴应用

    通过创建虚假的按键和点击来实现自动化。

  • Keyboard Maestro
  • BetterTouchTool
  • F1 键输出“on my way”
  • 按下 F2 点击屏幕上的“关闭”按钮
  • 阻止任何键盘上的 ⌘Q 在任何应用中起作用,但“备忘录”除外
  • 命令与逻辑应用

    通过与其他应用通信来实现自动化。

  • Keyboard Maestro
  • Keyboard Cowboy
  • BetterTouchTool
  • Hammerspoon
  • Shortcuts (macOS)
  • Automator (macOS)
  • Alfred Workflows
  • 如果 FaceTime 正在运行,即使你不在该应用内,⇧Esc 也能将其静音
  • 按下 F3 开启或关闭深色模式
  • 按下 ⌘⌥V 将选中的文本粘贴到之前打开的应用程序中
  • 命令面板

    提供应用启动和自动化功能的可视化命令行。

  • Spotlight (macOS)
  • Alfred
  • Quicksilver
  • Raycast
  • 按下 ⌘Space 打开命令面板
  • 按下 ⌘⌥C 显示剪贴板历史
  • 特定应用内的键盘控制

    驻留在各个独立应用内的键盘自定义功能。

  • Photoshop
  • DaVinci Resolve
  • VS Code
  • Nova
  • Chrome
  • 可以将 F1 配置为在 Photoshop 中打开自定义操作
  • 可以将 ⌥M 配置为在 Zoom 中静音
  • ⌘/ 在 Figma 中打开命令面板
  • 文本扩展应用

    专门辅助文本输入的工具,包括输入符号和表情符号。

  • Text Replacements (macOS)
  • Espanso
  • TextExpander
  • Typinator
  • Rocket (emoji selector)
  • 输入“omw”会输出“on my way”
  • 输入“$today”会以美观的格式输出今天的日期
  • 输入“$add”会输出收货地址
  • 输出/操作

    从技术上讲,这些组件都包含两部分:“引擎”和“配置器”。运行在键盘上的键盘固件和运行在网页上的固件配置器应用是两个不同的东西,接下来的大多数情况也是如此。然而在实际使用中,你通常不需要直接面对这种二分法。

    键盘固件应用

    这些应用用于控制驻留在键盘内部的软件(也就是“固件”)。

    如今,它们通常是 Web 应用或专用的桌面应用。在某些键盘上,没有可见的 UI,你只能通过神秘的 Fn 键组合与键盘进行交互。而在另一些键盘上,唯一的 UI 是机械 DIP 开关。这些交互方式几乎没有任何一种在使用时让人感到特别愉悦。

    在这里,你通常可以做以下操作:

  • 交换修饰键(modifier keys)的位置。或者,至少允许将 PC 的按键排列方式更改为 Mac 的排列方式,这两者之间存在轻微的不兼容。
  • 为按键分配按键输入。例如,左上角的按键可以是 Q 或者 F1,等等。
  • 允许一个按键输出多个字符。这些字符序列通常被称为“宏”。
  • 决定旋钮的作用。旋钮通常也是伪装起来的按键——当它们向左或向右旋转时,通常会连续发出一连串相同的按键信号。
  • 这是你唯一能够控制以下内容的地方:

  • 键盘上的任何灯光。
  • 键盘的“层(Layers)”——可以在不同按键分配之间切换的功能。一开始你不需要在这个功能上费太多心思。
  • 键盘独有的特定功能:光学轴体、低延迟游戏功能、支持速录等等。
  • 有一件重要的事情:按键的数量是有限的。看看普通的桌面键盘,你已经能看到其中的大部分按键了。功能键比你想象的要多几个——从 F13 到 F20——还有一些零星的按键,比如 Switch to Kana。但你能用的也就这些了。你无法发明一个新按键,也无法直接发送 ASCII、emoji 或 Unicode 字符,因为它们无法像普通按键那样通过 USB 协议“搭乘经济舱”传输。

    但是!你总是可以发送一个 F20 按键,然后在另一端决定它的作用。你还能区分一个键盘上的 F20 按键和另一个键盘上的 F20 按键。因此,这给了你很多选择,但感觉就是很怪异——就像一个只为跨越 USB 线缆而存在的神秘按键别名。

    F20 之上的几个功能键也是可用的,但在使用上会稍微复杂一点。请使用者自行留意!

    等等,你可能会问:你刚才上面不是说创建一个名为 Hyper 的新修饰键吗?是,也不是。这是另一种障眼法。你知道你可以随心所欲地组合常规的修饰键,比如将某个功能分配给 ⇧⌃⌥⌘ 这种极限组合吗?无论是人还是应用程序都不常这么做,因为这些快捷键按起来极其难受。但是你可以轻松地——通过软件——让 Caps Lock 的作用等同于同时按住所有其他修饰键。这样一来,按下 Caps Lock+D 就等同于按下 ⇧⌃⌥⌘+D,但你的手指会舒服无数倍。这就是“Hyper”键的惯例——在后台,它实际上是在帮你按下那四个修饰键!

    在下面,我将向你展示如何让它与其他修饰键配合使用以获得更多选项,尽管从它的本质来看这似乎是不可能的。

    USB 端应用

    这个类别有点难以描述;我最常用的比喻是“一个驻留在电脑USB接口里的应用”。其内部工作原理与键盘固件相似,运行机制大致相同,只不过它是存在于你的电脑内部的。

    属于该类别的应用有:

  • macOS 有一个名为“修饰键”(Modifier Keys)的内置小型设置区
  • Karabiner Elements(我推荐这款)、Kanata 和 KMonad
  • 只有在这里你才能:

  • 对“多媒体”或“系统”按键进行操作——例如,如果你想用新的方式控制音量。这些快捷键在经过这个节点后会立即被路由到系统,后续流程中的键盘应用根本就看不到它们。
  • 根据按键来源的键盘执行不同的操作。(对于链条中后续的应用来说,所有的按键操作都是无法追踪来源的。)例如,可以将某个小键盘的 F1 键静默转换为 Shift+F1,但主键盘上的 F1 键则可以保持原样。
  • 我的建议是:Karabiner 是免费的,而且通常没什么危害。在大多数情况下你用不到它,但如果你想开始折腾修饰键(尤其是在多个键盘上),或者想对功能键做些什么,这就是不二之选。仅仅因为它有一个非常实用的 Event Viewer(事件查看器),就值得安装来体验一下,不过它的 UI 可能感觉有些粗糙且令人生畏。

    如果你想的话,你可以在这里将功能键一分为二。

    Karabiner 也能让你实现固件所支持的功能:交换修饰键、重新映射按键以及为按键添加宏。但我建议,除非绝对必要,否则不要在这里进行这些操作,因为固件应用或 Keyboard Maestro 的界面要更好用一些。

    注意:就像 Keyboard Maestro 一上来就迫不及待地启用其自带的 ⌘Tab 替代方案那样,Karabiner 可能会立刻改变你功能键的默认功能。

    为命令分配快捷键

    这些应用的存在仅仅是为了对现有应用的操作添加、更改或移除键盘快捷键。遗憾的是,这通常仅限于你在菜单中看到的命令,因为 macOS 没有更通用的命令系统。

    此类应用包括:

  • macOS 有一套相对不太好用系统,通过它你可以禁用或更改许多特殊的系统级全局快捷键(例如通过 ⌘⌥D 隐藏 Dock),还可以根据其他应用的菜单为其分配或更改快捷键。
  • CustomShortcuts 是一款出色的免费应用,允许你为其他应用的菜单分配或更改快捷键。
  • KeyClu 和 KeyCue 除了允许更改命令快捷键外,还能向你展示其他应用的命令速查表。我使用它们时的体验并不怎么好,也不推荐这两款。
  • 如果你选择按照我的方式来操作,除了需要禁用那些打扰到你或你想重新占用的系统快捷键(比如隐藏 Dock)之外,你完全不需要碰这个类别。遗憾的是,其他应用无法在这些快捷键发送给操作系统之前进行拦截,并且在流程的早期重写它们也没有意义。

    不过,这个类别的应用有一个优点:如果你更改了某个快捷键,菜单中显示的也会同步更新,这可能有助于你加深记忆。

    像操作自动钢琴一样控制一切

    该类别中的应用完全将计算机操作视为人机交互事件:按键的按下与抬起、鼠标光标的移动、触控板的点击,以及它们之间的延迟。

    响应你按下按键的操作,它们可以……假装按下了更多的键,或者将鼠标移动到特定位置。它们做起来既快又可靠。这种简单的自动化能发挥很大的作用,因为除了按键和点击之外,你用电脑还能做些什么呢?

    你可以设置一个应用,在按下某个键后自动按 6 个键:现在你就有了文本展开功能。你可以让应用在按下另一个键后自动按 30 次 ↓:这样即使应用不支持,你也相当于重现了下一页(Page Down)键。你还可以让应用替你按下 ⌘ 和 Space,然后输入应用名称并敲击回车——现在你可以启动任何想要的东西了。

    但这也很受限,因为……除了敲击键盘和点击东西之外,你用电脑还会做什么?嗯,你会做大量的查看和思考。但在这里,大量的查看和思考是不被允许的,甚至是不可能的。你可以让鼠标移动到屏幕上的特定位置并模拟点击,以此来按下本该在那里的某个按钮,但你永远无法完全确定。你可以替用户按键,但你无法理解按下这些键后会发生什么。这一类工具的特点是“只写,不读”。与其说是“发射后不管”(fire and forget),不如说是“闭着眼睛开火”。

    属于这一类的应用有:

  • Keyboard Maestro —— 我推荐这款
  • BetterTouchTool —— 我觉得它的用户界面令人费解,所以不推荐
  • 这一类应用通常也涵盖了下面将要介绍的类别(但反之不然),所以我们直接往下看。

    使用命令和逻辑进行控制

    上一类应用就像是在对系统及其应用程序盲目拍打,而这一类应用则是真正在与它们对话。上面的应用头脑比较简单;这一类应用则是多语种的。它们懂得如何使用操作系统的内部语言,可以与应用程序进行交流,并且拥有自己丰富的内部语言。

    有时这有助于我把上一类应用想象成老式的“自动钢琴”(player pianos)——即使你把琴弦拆了,它们也会继续漫无目的地上下挥动音锤去敲击琴键。这一类应用则更像是面对乐谱的音乐家:如果钢琴坏了、如果他们坐错了乐器、如果演奏时间太早或太晚,或者如果他们……没有了双臂,他们不会只是机械地模仿动作,而是会向你报告情况。

    在这个“命令与逻辑”类别中,你不需要将光标向西移动 20 像素、向南移动 40 像素来点击按钮,而是可以直接通过名称请求并激活按钮;即使按钮位置变了,这依然有效,而且如果按钮完全不存在,你还会收到警告。应用不需要按 30 次 ↓,而是可以直接调用一个 scrollDown 函数。这一类应用不需要模仿人类去模拟按下 ⌘Space,然后再模拟输入程序名称来启动它,而是可以直接要求操作系统去启动,实现程序对程序地(programo-a-programo)交流。

    由于与系统的通信是双向的,应用也会获得反馈,并且可以将反馈传达给你。它可以告诉你它是否找到了你要求启动的程序,而你的逻辑可以针对这一信息做出反应。这也允许你做出有条件的决策:根据某个软件是否存在、系统是否处于特定状态、或者你在此之前是否按下了其他键等等,来执行不同的操作。

    这通常是做所有事情的正确且聪明的方式。既然如此,为什么之前那个"爬行动物脑"选项还存在呢?原因有很多:

  • 有时候,做一件简单粗暴的事情,直接模拟按键,比学习某个应用特定的语言和规则要省事得多。
  • "自动钢琴"方法适用于所有应用,即使是那些没有高层接口可供通信的应用。
  • 即使在通信词汇非常丰富的应用中,也可能遗漏某些动词。但"自动钢琴"方法可以到达你的按键和鼠标点击所能到达的任何地方。
  • 判断哪种方法更好,是一门艺术。通常你会混合使用:例如,用智能逻辑判断当前运行的是哪个应用,然后模拟按下 ⌘T,而不是通过"官方外交渠道"请求"打开新标签页"。

    属于此类以及上一类的应用:

  • Keyboard Maestro
  • Keyboard Cowboy
  • BetterTouchTool
  • 仅属于此类的应用:

  • macOS 内置了 Shortcuts 和 Automator(Shortcuts 概念的早期版本)
  • 在 macOS 中,你还可以通过编写 AppleScript 脚本与应用进行通信
  • 其他应用:

  • Alfred(Workflows)
  • 命令面板和其他可见 UI

    此类应用与上面的应用有些相似,但它们从略有不同的角度来应对这一挑战:它们想为你的电脑打造最好的命令行。在 Mac 上,你已经有了按 ⌘Space 调出的友好 Spotlight,以及极其不友好的 Terminal。许多第三方应用试图在两者之间找到不同的切入点。

    上面的命令与逻辑类应用允许你在整个操作系统中静默地自动化各种事务,而此类应用则给你一个通过完美快捷键调出的特定位置,许多神奇的事情只在这个地方发生。

    这里的选项可能与上一类相似:构建复杂逻辑、与应用和系统通信、串联许多重复性事件。其中一些应用还提供了不错的附加功能,比如更好的剪贴板控制或窗口管理选项。有些还会涵盖其他类别,例如为命令分配快捷键,作为额外福利。

    属于此类的应用:

  • Spotlight(macOS 内置)
  • Alfred、LaunchBar、Quicksilver 和 Raycast
  • 上一类中的一些应用,如 Keyboard Maestro,也能在这里做些事情——但效果稍逊。

    单个应用内的键盘自定义

    一些特定的应用,尤其是大型应用,提供了上述功能的内置版本。通常分为以下三类:

  • 为自身的操作分配快捷键
  • 通过命令和逻辑进行控制
  • 命令面板
  • 一些示例:

  • 许多应用如 Sublime Text、Figma 和 Linear 都有自己的命令面板
  • Chrome 允许你为启动扩展程序(或扩展程序暴露的特定操作)分配键盘快捷键
  • Sublime Text 允许你录制并回放按键
  • Zoom 允许你更改其快捷键,甚至将其设为"全局"(它知道该应用经常在后台运行)。
  • 这些通常比任何"外部"方案集成得更好,因为它们更了解底层应用的状态,可以访问所有命令(甚至菜单中没有的命令),并添加独特的功能(例如,对不同模式的感知)。但当然,每一个都是独立的系统,拥有你需要学习的独特界面,而且 UI 质量参差不齐。

    对于单字母按键配合 Shift 的快捷键来说,这可能是唯一合理的方案。它们总是高度依赖上下文——例如在应用中 Shift+H 可以水平翻转,但在文本框中 Shift+H 需要输出大写字母——并且如果在应用外部进行编程,由于上下文可能丢失,实现起来会困难得多。

    文本扩展

    这些应用专门用于处理文本和输入——例如任何能看到闪烁文本光标的地方。

    文本扩展可以存在于更底层的“自动钢琴”级别,但它的实现会相当机械:如果你输入“omw”,应用必须模拟按下 Backspace 键来删除你已经输入的内容,然后再为你输入“on my way”。

    在幕后,更聪明的“自动钢琴”会按下 ⌥Backspace 来删除整个单词,然后将内容放入剪贴板并一次性粘贴出来,从而避免看到那些繁杂的中间步骤。但挑战依然存在。

    一些文本扩展应用采用这种方式,另一些则以更高级别集成到系统中(具有可见的 UI 和更细致的选项)。无论哪种方式,专门的文本扩展应用通常都更易于使用,原因很简单,因为它们本身就更简单。

    我不怎么使用这类应用,所以没有强烈的推荐,但以下是一些我听说大家比较喜欢的应用:

  • macOS 具有原生的文本扩展功能(称为文本替换)。它也能与 iPhone 及其他设备同步。
  • Espanso、TextExpander 和 Typinator
  • 其中一些应用还附带了更好用的字符/表情符号选择器,甚至还有专门的表情符号选择器或扩展工具,比如 Rocket。

    选择你自己的冒险

    “选择你自己的冒险”部分到此结束!

    好了,理论部分到此结束!现在,来看看示例……

    就这些!

    这一切可能会变得相当让人上瘾,至少对来说是这样。我一直在尝试各种有趣的事物、我一直想尝试的交互方式,以及各种新的组合。

    以下是我总结的经验:

  • 不要把系统设计得太复杂。从一两个你觉得有趣的功能开始就好。
  • 打破所有规则。你是在为自己这个唯一的受众做设计。
  • 倾听你手指的感受。如果它们已经喜欢某种操作,那就多增加一些类似的设计。
  • 以物理按键的舒适度为核心进行优化;不要创造那些扭曲你双手的复杂咒语。
  • 不要低估看似微小的改进,因为它们会迅速积少成多。
  • 将相关联的功能并排放置,或者放在修饰键下。
  • 使用空间映射(现实生活中在左边的东西,在键盘上也放在左边)。
  • 如果可以的话,将按键划分为“用于整个系统”和“用于当前应用”,这能让你自己更轻松。
  • 你可以为一个操作分配多个按键,也可以为一个按键分配多个操作。
  • 将快捷键设置为“全局”可用,这样你就可以随时按下它们。
  • 不要过度迷信自动化。自动化并不是一切,有时候你需要故意放慢节奏,单纯享受过程。
  • 最重要的是,玩得开心!
  • 当然,实际情况可能比上面提到的更复杂。所有这些都是运行在你电脑上的软件,而软件之间是可以相互通信的。Karabiner 实际上具有一些系统逻辑,可以根据当前处于最前端的 App 执行特定操作。Karabiner 可以直接将指令发送给 Keyboard Maestro,Keyboard Maestro 也可以直接发送给 Karabiner,这就打破了上面图表中的流程。如果你有足够的灵感,你甚至可以悄悄在后台打开一个不可见(无头)的 Chrome 浏览器,用来打开键盘的网页以更改它的灯光或图层!

    我最后的一个建议是,在快捷键真正成为你的肌肉记忆之前,给自己在纸上某个地方写一份简短的备忘录。

    希望您喜欢这篇指南。如果您有任何疑问,或是想分享您的成果,请随时告诉我!

    需要完整排版与评论请前往来源站点阅读。