Pi Agent 的快捷键设计得比较全面,而且支持全按键自定义。它的配置文件位于 `~/.pi/agent/keybindings.json`,修改后无需重启,在 Pi 会话中运行 `/reload` 命令即可生效。 下面整理了 Pi 的默认快捷键,分为几大类: ### ⌨️ 编辑器操作 这些快捷键主要用于在输入框中编辑文本和移动光标。 | 操作 | 默认快捷键 | 说明 | | :--- | :--- | :--- | | **光标上移** | `up` | 向上移动光标 | | **光标下移** | `down` | 向下移动光标 | | **光标左移** | `left`, `ctrl+b` | 向左移动一个字符 | | **光标右移** | `right`, `ctrl+f` | 向右移动一个字符 | | **按词左移** | `alt+left`, `ctrl+left`, `alt+b` | 向左移动一个单词 | | **按词右移** | `alt+right`, `ctrl+right`, `alt+f` | 向右移动一个单词 | | **跳到行首** | `home`, `ctrl+a` | 跳转到当前行的开头 | | **跳到行尾** | `end`, `ctrl+e` | 跳转到当前行的结尾 | | **删除前一个字符** | `backspace` | 删除光标前的字符 | | **删除后一个字符** | `delete`, `ctrl+d` | 删除光标后的字符 | | **删除前一个词** | `ctrl+w`, `alt+backspace` | 删除光标前的一个单词 | | **删除后一个词** | `alt+d`, `alt+delete` | 删除光标后的一个单词 | | **删至行首** | `ctrl+u` | 删除从光标到行首的内容 | | **删至行尾** | `ctrl+k` | 删除从光标到行尾的内容 | | **撤销** | `ctrl+-` | 撤销上一步编辑操作 | | **粘贴已删文本** | `ctrl+y` | 粘贴最近删除的文本(Kill Ring) | ### 📝 输入与提交 | 操作 | 默认快捷键 | 说明 | | :--- | :--- | :--- | | **换行** | `shift+enter`, `ctrl+j` | 在输入框中插入换行符 | | **提交** | `enter` | 发送当前输入内容 | | **Tab/自动补全** | `tab` | 触发路径或命令的自动补全 | | **外部编辑器** | `ctrl+g` | 在外部编辑器中编辑当前输入内容 | ### 🚀 应用与消息 | 操作 | 默认快捷键 | 说明 | | :----------- | :---------- | :------------------ | | **中断/取消** | `escape` | 取消当前正在进行的 AI 操作 | | **清空编辑区** | `ctrl+c` | 清空当前输入框中的所有内容 | | **退出** | `ctrl+d` | 当编辑区为空时,退出 Pi Agent | | **复制 AI 回复** | `ctrl+x` | 复制最后一条 AI 助手的回复消息 | | **发送跟进消息** | `alt+enter` | 将当前消息排入跟进队列 | | **取回排队消息** | `alt+up` | 将排队中的消息取回编辑器 | ### 🧠 模型与推理 | 操作 | 默认快捷键 | 说明 | | :--- | :--- | :--- | | **模型选择器** | `ctrl+l` | 打开模型选择器,快速切换模型 | | **向前切换模型** | `ctrl+p` | 切换到下一个模型 | | **向后切换模型** | `shift+ctrl+p` | 切换到上一个模型 | | **切换推理等级** | `shift+tab` | 循环切换 AI 的推理强度等级 | | **切换推理显示** | `ctrl+t` | 展开或折叠 AI 的推理过程 | | **切换工具输出** | `ctrl+o` | 展开或折叠工具调用的输出结果 | ### ✨ 如何自定义快捷键 Pi 的快捷键完全可定制。你可以通过编辑 `~/.pi/agent/keybindings.json` 文件来修改或禁用任何快捷键。 **配置格式**:文件是一个 JSON 对象,键是操作 ID,值是一个快捷键字符串或字符串数组。 ```json { "tui.editor.cursorUp": ["up", "ctrl+p"], "tui.input.submit": "enter", "tui.input.newLine": ["shift+enter", "ctrl+enter"] } ``` *(注:操作 ID 可能是命名空间形式,如 `tui.editor.cursorUp`,旧的非命名空间形式如 `cursorUp` 在启动时会自动迁移)* **快捷键语法**:使用 `修饰键+按键` 的格式。 * **修饰键**:`ctrl`, `shift`, `alt`,可以组合使用,如 `ctrl+shift+x`。 * **按键**:字母(`a`-`z`)、数字(`0`-`9`)、方向键(`up`, `down`)、特殊键(`enter`, `escape`, `tab`, `space`, `backspace`, `delete`, `home`, `end`, `pageUp`, `pageDown`)以及功能键(`f1`-`f20`)等。 * **禁用快捷键**:将快捷键设置为空数组 `[]` 即可移除该默认绑定。 你可以参考默认配置,打造一套完全符合自己习惯的快捷键方案。