Pi 官方文档

快捷键

按键绑定

所有键盘快捷键都可以通过 ~/.pi/agent/keybindings.json 自定义。每个操作都可以绑定一个或多个按键。

配置文件使用的,是 Pi 内部同样一套带命名空间的 keybinding id。扩展作者在 keyHint() 和注入的 keybindings 管理器中,也使用这一套。

使用旧版未带命名空间 id(例如 cursorUpexpandTools)的旧配置,会在启动时自动迁移为带命名空间的 id。

编辑完 keybindings.json 后,在 Pi 里运行 /reload,即可应用更改,无需重启会话。

按键格式

modifier+key,其中修饰键是 ctrlshiftalt(可组合),按键包括:

  • 字母: a-z
  • 数字: 0-9
  • 特殊按键: escapeescenterreturntabspacebackspacedeleteinsertclearhomeendpageUppageDownupdownleftright
  • 功能键: f1-f12
  • 符号: `-=[]\;',./!@#$%^&*()_+|~{}:<>?

修饰键组合:ctrl+shift+xalt+ctrl+xctrl+shift+alt+xctrl+1 等。

全部操作

TUI 编辑器光标移动

按键绑定 ID默认说明
tui.editor.cursorUpup光标上移
tui.editor.cursorDowndown光标下移
tui.editor.cursorLeftleft, ctrl+b光标左移
tui.editor.cursorRightright, ctrl+f光标右移
tui.editor.cursorWordLeftalt+left, ctrl+left, alt+b光标向左跳一个词
tui.editor.cursorWordRightalt+right, ctrl+right, alt+f光标向右跳一个词
tui.editor.cursorLineStarthome, ctrl+a跳到行首
tui.editor.cursorLineEndend, ctrl+e跳到行尾
tui.editor.jumpForwardctrl+]向前跳到字符
tui.editor.jumpBackwardctrl+alt+]向后跳到字符
tui.editor.pageUppageUp向上翻页
tui.editor.pageDownpageDown向下翻页

TUI 编辑器删除

按键绑定 ID默认说明
tui.editor.deleteCharBackwardbackspace向后删除字符
tui.editor.deleteCharForwarddelete, ctrl+d向前删除字符
tui.editor.deleteWordBackwardctrl+w, alt+backspace向后删除一个词
tui.editor.deleteWordForwardalt+d, alt+delete向前删除一个词
tui.editor.deleteToLineStartctrl+u删除到行首
tui.editor.deleteToLineEndctrl+k删除到行尾

TUI 输入

按键绑定 ID默认说明
tui.input.newLineshift+enter插入新行
tui.input.submitenter提交输入
tui.input.tabtabTab / 自动补全

TUI 剪切环

按键绑定 ID默认说明
tui.editor.yankctrl+y粘贴最近删除的文本
tui.editor.yankPopalt+y在 yank 后轮换浏览删除的文本
tui.editor.undoctrl+-撤销上一次编辑

TUI 剪贴板与选择

按键绑定 ID默认说明
tui.input.copyctrl+c复制选中内容
tui.select.upup选择项上移
tui.select.downdown选择项下移
tui.select.pageUppageUp列表上翻页
tui.select.pageDownpageDown列表下翻页
tui.select.confirmenter确认选择
tui.select.cancelescape, ctrl+c取消选择

TUI 全屏视口

这些操作在交互模式使用 --tui-mode fullscreen 时生效,作用于主要的转录滚动区域。双指触控板和鼠标滚轮会滚动指针所在区域;如果指针位于固定的编辑器/状态/底部栏上,则回退为滚动转录区域。点击 OSC 8 超链接会使用默认处理程序打开。按住鼠标左键拖动可以选择文本并复制到剪贴板;停留在转录区域顶部或底部边缘时会自动滚动到屏幕外内容。终端专属的鼠标和触控板行为见终端设置

全屏转录绑定优先于编辑器绑定。因此,在全屏模式下,默认的未修饰导航键控制转录,而对应的 ctrl 变体继续控制编辑器;在全屏之外,两种变体都控制编辑器。

按键默认模式全屏模式
homeend编辑器转录
ctrl+homectrl+end编辑器编辑器
pageUppageDown编辑器转录
ctrl+pageUpctrl+pageDown编辑器编辑器

该路由仍可通过普通操作绑定配置。例如,"tui.altScreen.pageUp": "ctrl+pageUp" 会让全屏模式下的 pageUp 控制编辑器、ctrl+pageUp 控制转录。可以绑定 tui.altScreen.halfPageUptui.altScreen.halfPageDown 实现半页移动,或绑定 tui.altScreen.lineUptui.altScreen.lineDown 实现单行移动。将 "tui.altScreen.pageUp": [] 设为空数组,可以完全禁用该转录快捷键。用户绑定会替换该操作的默认值。

按键绑定 ID默认值说明
tui.altScreen.pageUppageUp将转录向上滚动一页
tui.altScreen.pageDownpageDown将转录向下滚动一页
tui.altScreen.halfPageUp(无)将转录向上滚动半页
tui.altScreen.halfPageDown(无)将转录向下滚动半页
tui.altScreen.lineUp(无)将转录向上滚动一行
tui.altScreen.lineDown(无)将转录向下滚动一行
tui.altScreen.previousPromptctrl+shift+upctrl+up(Windows/WSL 仅 ctrl+up跳到上一条标记消息
tui.altScreen.nextPromptctrl+shift+downctrl+down(Windows/WSL 仅 ctrl+down跳到下一条标记消息
tui.altScreen.searchctrl+shift+f(Windows/WSL 为 ctrl+f搜索渲染后的转录
tui.altScreen.searchNextenterctrl+g搜索时选择下一个匹配项
tui.altScreen.searchPreviousshift+enterctrl+shift+g搜索时选择上一个匹配项
tui.altScreen.searchCloseescape关闭转录搜索
tui.altScreen.tophome滚动到转录开头
tui.altScreen.bottomend滚动到转录末尾并跟随新输出

应用

按键绑定 ID默认说明
app.interruptescape取消 / 中止
app.clearctrl+c第一次清空编辑器,第二次退出
app.exitctrl+d退出(编辑器为空时)
app.suspendctrl+z(Windows 上无)挂起到后台
app.editor.externalctrl+g在外部编辑器中打开(externalEditor$VISUAL$EDITOR、Windows 上的 Notepad 或其他平台的 nano
app.clipboard.pasteImagectrl+v(Windows 和 WSL 上为 alt+v从剪贴板粘贴图片或文本

会话

按键绑定 ID默认说明
app.session.new(无)新建会话(/new
app.session.tree(无)打开会话树导航器(/tree
app.session.fork(无)分叉当前会话(/fork
app.session.resume(无)打开会话恢复选择器(/resume
app.session.togglePathctrl+p切换路径显示
app.session.toggleSortctrl+s切换排序模式
app.session.toggleNamedFilterctrl+n切换仅显示带名称条目的过滤器
app.session.renamectrl+r重命名会话
app.session.deletectrl+d删除会话
app.session.deleteNoninvasivectrl+backspace查询为空时删除会话

模型与思考

按键绑定 ID默认说明
app.model.selectctrl+l打开模型选择器
app.model.cycleForwardctrl+p切换到下一个模型
app.model.cycleBackwardshift+ctrl+p(Windows 和 WSL 上为 alt+p切换到上一个模型
app.thinking.cycleshift+tab切换思考级别
app.thinking.togglectrl+t折叠或展开思考块

显示与消息队列

按键绑定 ID默认说明
app.tools.expandctrl+o折叠或展开工具输出
app.message.copyctrl+x复制上一条助手消息,或 /tree 中选中的消息
app.message.followUpalt+enter(Windows 和 WSL 上为 ctrl+q将后续消息加入队列
app.message.dequeuealt+up(Windows 和 WSL 上为 alt+q将队列中的消息恢复到编辑器

树导航

按键绑定 ID默认说明
app.tree.foldOrUpctrl+left, alt+left折叠当前分支段,或跳到上一个分段起点
app.tree.unfoldOrDownctrl+right, alt+right展开当前分支段,或跳到下一个分段起点或分支末尾
app.tree.editLabelshift+l编辑所选树节点上的标签
app.tree.toggleLabelTimestampshift+t切换树中标签时间戳显示
app.tree.filter.defaultctrl+d将树过滤器设为默认视图
app.tree.filter.noToolsctrl+t切换隐藏工具结果的树过滤器
app.tree.filter.userOnlyctrl+u切换仅显示用户消息的树过滤器
app.tree.filter.labeledOnlyctrl+l切换仅显示带标签条目的树过滤器
app.tree.filter.allctrl+a切换显示所有条目的树过滤器
app.tree.filter.cycleForwardctrl+o向前切换树过滤器
app.tree.filter.cycleBackwardshift+ctrl+o向后切换树过滤器

作用域模型选择器

在作用域模型选择器中使用(通过 /scoped-models 打开)。

按键绑定 id默认值说明
app.models.savectrl+s将当前模型选择保存到设置
app.models.enableAllctrl+a启用所有模型(或当前搜索匹配到的所有模型)
app.models.clearAllctrl+x清除所有模型(或当前搜索匹配到的所有模型)
app.models.toggleProviderctrl+p在当前 Provider 的所有模型之间切换
app.models.reorderUpalt+up在轮循顺序中上移所选模型
app.models.reorderDownalt+down在轮循顺序中下移所选模型

自定义配置

创建 ~/.pi/agent/keybindings.json

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

每个动作都可以配置单个按键或按键数组。用户配置会覆盖默认值。

在原生 Windows 上,app.suspend 默认没有绑定,因为 Windows 终端不支持 Unix 的作业控制。如果你手动绑定它,Pi 会显示状态消息,而不是挂起。在 WSL 中,Linux 下正常的 ctrl+z/fg 行为仍然适用。

Emacs 示例

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.cursorLeft": ["left", "ctrl+b"],
  "tui.editor.cursorRight": ["right", "ctrl+f"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+f"],
  "tui.editor.deleteCharForward": ["delete", "ctrl+d"],
  "tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
  "tui.input.newLine": ["shift+enter", "ctrl+j"]
}

Vim 示例

{
  "tui.editor.cursorUp": ["up", "alt+k"],
  "tui.editor.cursorDown": ["down", "alt+j"],
  "tui.editor.cursorLeft": ["left", "alt+h"],
  "tui.editor.cursorRight": ["right", "alt+l"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}

Pi 官方文档中文整理 · 官方原文已更新,译文待同步

本文基于官方 MIT 文档翻译整理,不代表 pi.dev 官方中文站。同步 commit:1defa151,同步时间:2026/8/27

查看官方原文