# 窗口与开发者工作流

> 关闭与轮换窗口、启动应用、发送终端与 IDE 组合键、使用五个额外剪贴板，并在核心区直接输入代码标点。

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

这套布局为最容易打断开发者心流的操作安排了多个颜色区域：切换窗口、启动工具、
发送终端信号、临时存放文本，以及输入标点符号。

> [!IMPORTANT]
> 本页所有组合都假定 ✱ Hyper 已经按下。

## 窗口管理 {#window-control}

⇥ Q W A
S 构成键盘左侧的淡蓝色区块，负责关闭与轮换：小到一个标签页，
大到整个登录会话。

| 按键 | Hyper | + ⌘ | + ⌥ | + ⌃ | + ⇧ |
| :--- | :--- | :--- | :--- | :--- | :--- |
| ⇥ | 下个应用 | 上个应用 | 下个桌面 | — | 下个标签页 |
| Q | 退出应用 | 退出应用 | — | 锁屏 | 注销 |
| W | 关闭窗口 | 关闭窗口 | 熄屏 | — | 睡眠 |
| A | *窗口管理器* | 调度中心 | 显示桌面 | Spotlight | — |
| S | 下个标签页 | 上个标签页 | 下个窗口 | 上个窗口 | — |
{.matrix .wide caption="从一个标签页到整个登录会话的关闭与轮换"}

其中两行值得单独说明。

✱ + A 是**故意不映射**的。因为 Hyper 就是右侧的
⌃ + ⌥ + ⇧ + ⌘，没有被占用的键会原样透传给正在监听的应用。
在 [Moom](https://manytricks.com/moom/)、[Magnet](https://magnet.crowdcafe.com/)
或任何窗口管理器里绑定 ⌃ + ⌥ + ⇧ + ⌘ + A，它就成了你的布局键。
[Slate](https://github.com/jigish/slate) 仅作为历史示例保留。

睡眠并不是按键，而是 Shell 命令：✱ + ⇧ + W 执行 `pmset sleepnow`，✱ + ⌥ + W 执行 `pmset displaysleepnow`。
Karabiner 不需要额外权限，但如果有模态对话框正在阻塞输入，它们不会触发。

## 应用捷径 {#applications}

黄色按键在三个平面上启动或切换六个应用。每条规则都是一句普通的 `open -a`
Shell 命令，也就是说目标是按应用**名称**匹配的，这正是它们可以安全改写的原因。

| 按键 | Hyper | + ⌘ | + ⌥ |
| :--- | :--- | :--- | :--- |
| E | Safari | Finder | Mail |
| R | iTerm2 | Preview | Terminal |
| T | Visual Studio Code | Typora | Notes |
| Y | Siri | Karabiner-Elements | Amphetamine |
| F | Alfred 5 | Dash | Dictionary |
| G | IntelliJ IDEA | Google Chrome | Calendar |
{.matrix .wide caption="这些只是默认值：这十八个名字本来就是给你改的"}

> [!TIP]
> [配置器](/zh/docs/karabiner/configurator/)可以在浏览器里改写其中任何一个名字，
> 并导出一份可以直接导入的 JSON，既不用克隆仓库，也不用安装任何工具。

由于 `open -a` 既能启动也能切换，一个键就顶掉了点 Dock 图标和在
⌘ + ⇥ 里翻找。如果应用已经在最前，再按一次不会有任何反应：
它不是开关。

## 终端与 IDE 控制 {#terminal-control}

绿色按键把 Shell 高频使用的控制组合挪到右手，左手不必再在打字中途扭成
⌃ 加字母的姿势。

| 按键 | Hyper | + ⌘ |
| :--- | :--- | :--- |
| D | ⌃ + D · 发送 EOF | ⌃ + ⌘ + D · 查询指针下的词 |
| Z | ⌃ + Z · SIGTSTP，挂起任务 | F5 · 开始调试 |
| X | ⌃ + R · 在 IDE 中运行 | ⌃ + F5 · 不调试直接运行 |
| C | 启动 Codex | 启动 Claude |
| V | ⌃ + V · Vim 块选择 / 字面量前缀 | — |
| B | ⌃ + B · [Tmux](https://github.com/tmux/tmux/wiki) 前缀 | — |
{.matrix .wide caption="终端信号、IDE 运行控制，以及两个前缀键"}

✱ + C 与 ✱ + ⌘ + C 和黄色按键一样是 `open -a`
命令，可以改指向你自己在用的助手。

> [!NOTE]
> ✱ + Z 与 ✱ + X 刻意没有遮蔽
> ⌘ + Z 撤销和 ⌘ + X 剪切：后者不需要 Hyper，
> 两种写法在同一个物理键上共存。

## 五个文本剪贴板 {#clipboard}

数字键 6–0 变成五个互相独立的文本剪贴板。
✱ + ⌘ 加数字把当前选中内容复制进该槽位，✱
加数字再把它粘贴回来。

| 组合 | 实际发生的事 |
| :--- | :--- |
| ✱ + ⌘ + 6 … ✱ + ⌘ + 0 | 先复制选区，再 `pbpaste > ~/.clip6` … `~/.clip0` |
| ✱ + 6 … ✱ + 0 | `cat ~/.clip6 \| pbcopy`，然后粘贴 |
{caption="每个槽位就是家目录下的一个文件"}

这种实现方式带来两个结果，而且都很有用：

- **槽位能挺过注销、重启，也不受系统剪贴板影响。**它们就是普通文件，
  `cat ~/.clip7` 就能在终端里读出来，任何编辑器都可以往里写，完全不必碰键盘。
- **它们只保存纯文本。**复制图片或文件进槽位，存下来的是 `pbpaste` 渲染出的
  文本，而不是原始对象。

> [!NOTE]
> V3.1 有意只在 6–0 上保留五个槽位。旧配置还使用
> 1–5，升级前请确认自己的使用习惯。

## 面向代码的上档变换 {#shifter}

橙色按键把程序员整天都在敲的标点挪到核心区附近，输入括号不必再做
⇧ 体操。

| 按键 | Hyper | + ⌘ | + ⌥ |
| :--- | :--- | :--- | :--- |
| \- | `_` | 页面缩小 | — |
| \= | `+` | 页面放大 | — |
| \[ | `(` | `{` | `<` |
| \] | `)` | `}` | `>` |
| \; | `:` | `!` | — |
| \' | `=` | `=` | — |
| \/ | 切换注释 | — | — |
| \\ | 切换注释 | — | — |
{.matrix .wide caption="两个键上摆下三对括号，:= 与 != 也落在同一只手里"}

括号键是最大的收益：\[ 与 \] 在同样的两个位置上给出
圆括号、花括号、尖括号三对。又因为 \; 与 \' 紧挨着，
`:` `=` 和 `!` `=` 都是相邻连击，这就是 Go 和 Rust 里的赋值与比较反而比在
原生键盘上更快的原因。

✱ + \/ 与 ✱ + \\ 都发送 ⌘ + \/，也就是
几乎所有编辑器与 IDE 通用的注释快捷键。

## 下一步 {#next}

在[系统功能与参考](/zh/docs/karabiner/reference/)中查阅功能键、截图、符号、
定制与问题排查。

---

反链：

- [安装](/zh/docs/karabiner/getting-started/)
- [导航与鼠标](/zh/docs/karabiner/navigation/)
