For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /docs/latest/keybindings.md.

快捷键参考

本页面是 Pi 官方文档 的中文翻译。仅供学习参考。

Pi 暴露具名动作,例如 app.session.new,可以为它们分配快捷键。你可以在 Pi 的用户配置中修改默认分配,或为未分配的动作绑定按键。

运行 /hotkeys 可以查看主编辑器和应用当前生效的快捷键。

分配快捷键

创建 <agent-dir>/keybindings.json。agent 目录默认为 ~/.pi/agent,详见 Agent 目录。

把每个动作标识符映射到一个按键或按键列表:

{
  "app.session.new": "ctrl+shift+n",
  "app.session.tree": ["ctrl+shift+t", "alt+shift+t"]
}

配置的值会替换该动作的默认值。用空列表可以禁用某个动作的快捷键:

{
  "tui.altScreen.pageUp": []
}

编辑文件后,运行 /reload 把改动应用到当前会话。

按键语法

按键写成 modifier+key。修饰键是 ctrl、shift、alt 和 super。可以组合修饰键。合法的按键有:

  • 字母: a-z
  • 数字: 0-9
  • 特殊: escape、esc、enter、return、tab、space、backspace、delete、insert、clear、home、end、pageUp、pageDown、up、down、left、right
  • 功能键: f1-f12
  • 符号: `、-、=、[、]、\、;、'、,、.、/、!、@、#、$、%、^、&、*、(、)、_、+、|、~、{、}、:、<、>、?

示例:ctrl+shift+x、alt+ctrl+x、ctrl+shift+alt+x、super+k、ctrl+super+k 和 ctrl+1。

super 绑定需要终端单独报告该修饰键,通常通过 Kitty 键盘协议。在不支持该协议的终端中它们可能不工作。

动作

终端 UI

光标移动

快捷键 id默认值说明
tui.editor.cursorUpup上移光标,在顶部浏览更早的历史
tui.editor.cursorDowndown下移光标,在底部浏览更新的历史
tui.editor.historyPrevious无选择上一条 Prompt 历史条目
tui.editor.historyNext无选择下一条 Prompt 历史条目
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+home、ctrl+a移到行首
tui.editor.cursorLineEndend、ctrl+end、ctrl+e移到行尾
tui.editor.jumpForwardctrl+]向前跳到某个字符
tui.editor.jumpBackwardctrl+alt+]向后跳到某个字符
tui.editor.pageUppageUp、ctrl+pageUp向上翻页
tui.editor.pageDownpageDown、ctrl+pageDown向下翻页

专用的历史动作无论光标位置都会浏览 Prompt 历史,并优先于使用同一按键的应用动作。

文本编辑

快捷键 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.editor.yankctrl+y粘贴最近删除的文本
tui.editor.yankPopalt+yyank 之后循环切换删除过的文本
tui.editor.undoctrl+-(Windows 为 ctrl+z;WSL 为 alt+z)撤销上次编辑

输入与选择

快捷键 id默认值说明
tui.input.newLineshift+enter、ctrl+j插入换行
tui.input.submitenter提交输入
tui.input.tabtabTab 或自动补全
tui.input.copyctrl+c复制选区
tui.select.upup上移选择
tui.select.downdown下移选择
tui.select.pageUppageUp列表向上翻页
tui.select.pageDownpageDown列表向下翻页
tui.select.confirmenter确认选择
tui.select.cancelescape、ctrl+c取消选择

全屏

在全屏模式下,这些动作控制转录,并优先于使用同一按键的编辑器动作。

快捷键 id默认值说明
tui.altScreen.pageUppageUp转录向上滚动一页
tui.altScreen.pageDownpageDown转录向下滚动一页
tui.altScreen.halfPageUp无转录向上滚动半页
tui.altScreen.halfPageDown无转录向下滚动半页
tui.altScreen.lineUp无转录向上滚动一行
tui.altScreen.lineDown无转录向下滚动一行
tui.altScreen.previousPromptctrl+shift+up、ctrl+up(Windows 和 WSL 只有 ctrl+up)跳到上一条标记的消息
tui.altScreen.nextPromptctrl+shift+down、ctrl+down(Windows 和 WSL 只有 ctrl+down)跳到下一条标记的消息
tui.altScreen.searchctrl+shift+f(Windows 和 WSL 为 ctrl+f)搜索已渲染的转录
tui.altScreen.searchNextenter、ctrl+g搜索时选择下一个匹配项
tui.altScreen.searchPreviousshift+enter、ctrl+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)从剪贴板粘贴 macOS 上的文件、图片或文本

在原生 Windows 上,app.suspend 没有默认值,因为 Windows 终端不支持 Unix 作业控制。如果你手动分配它,Pi 会显示状态消息而不是挂起。WSL 使用正常的 ctrl+z 和 fg 行为。

会话

快捷键 id默认值说明
app.session.new无开始新会话(/new)
app.session.tree无打开会话树导航器(/tree)
app.session.fork无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查询为空时删除会话

模型与 Thinking

快捷键 id默认值说明
app.model.selectctrl+l打开模型选择器
app.model.cycleForwardctrl+p循环到下一个模型
app.model.cycleBackwardshift+ctrl+p(Windows 和 WSL 为 alt+p)循环到上一个模型
app.models.savectrl+s把选中的默认模型或范围模型配置保存到设置
app.thinking.cycleshift+tab循环 thinking level
app.thinking.savectrl+s把当前 thinking level 保存到设置
app.thinking.togglectrl+t折叠或展开 thinking 块

显示与消息队列

快捷键 id默认值说明
app.tools.expandctrl+o折叠或展开工具输出
app.message.copyctrl+x在 /tree 中复制选中的消息;全屏模式下当 fullscreenCopyOnSelect 为 false 时复制活动选区;否则复制最后一条 assistant 消息。在 OAuth 登录界面,复制登录 URL
app.message.followUpalt+enter(Windows 和 WSL 为 ctrl+q)排队 follow-up 消息
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.enableAllctrl+a启用所有模型(或当前搜索匹配的全部)
app.models.clearAllctrl+x清空所有模型(或当前搜索匹配的全部)
app.models.toggleProviderctrl+p切换当前 Provider 的所有模型
app.models.reorderUpalt+up在循环顺序中把所选模型上移
app.models.reorderDownalt+down在循环顺序中把所选模型下移

法律声明:本页面是 pi.dev 官方文档的中文翻译版本,仅供学习参考。本网站与 pi.dev 及 Earendil Inc. 无任何法律关系。