PiPi
快速开始
使用 Pi
  • 简体中文
  • English
快速开始
使用 Pi
  • 简体中文
  • English
  • 从这里开始

    • 快速开始
    • 使用 Pi
    • 提供商
    • 安全
    • 容器化
    • 设置
    • 键位绑定
    • 会话
    • 压缩与分支总结
  • 自定义

    • 扩展
    • 技能
    • 提示词模板
    • 主题
    • Pi 包
    • 自定义模型
    • 自定义提供商
  • 参考

    • 会话文件格式
  • 编程式使用

    • SDK
    • RPC 模式
    • JSON 事件流模式
    • TUI 组件
  • 平台设置

    • Windows 设置
    • Termux(Android)设置
    • tmux 设置
    • 终端设置
    • Shell 别名
  • 开发

    • 开发

键位绑定

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

配置文件使用与 Pi 内部相同的命名空间键位绑定 id,扩展作者在 keyHint() 和注入的 keybindings 管理器中也使用这些 id。

使用旧版非命名空间 id(如 cursorUp 或 expandTools)的配置会在启动时自动迁移到命名空间 id。

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

按键格式

modifier+key,其中修饰键为 ctrl、shift、alt(可组合),按键包括:

  • 字母: 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、ctrl+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, ctrl+j插入新行
tui.input.submitenter提交输入
tui.input.tabtabTab / 自动补全

TUI Kill Ring

键位绑定 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取消选择

应用程序

键位绑定 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 上为 alt+v)从剪贴板粘贴图片

会话

键位绑定 id默认值描述
app.session.new(none)开始新会话(/new)
app.session.tree(none)打开会话树导航器(/tree)
app.session.fork(none)分叉当前会话(/fork)
app.session.resume(none)打开会话恢复选择器(/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切换到上一个模型
app.thinking.cycleshift+tab循环切换思考级别
app.thinking.togglectrl+t折叠或展开思考块

显示和消息队列

键位绑定 id默认值描述
app.tools.expandctrl+o折叠或展开工具输出
app.message.followUpalt+enter排队后续消息
app.message.dequeuealt+up将排队消息恢复到编辑器

树导航

键位绑定 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切换当前提供商的所有模型
app.models.reorderUpalt+up在循环顺序中上移所选模型
app.models.reorderDownalt+down在循环顺序中下移所选模型

自定义配置

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

{
  "tui.editor.cursorUp": ["up", "ctrl+p"],
  "tui.editor.cursorDown": ["down", "ctrl+n"],
  "tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

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

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

Emacs 示例

{
  "tui.editor.cursorUp": ["up", "ctrl+p"],
  "tui.editor.cursorDown": ["down", "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"]
}
最近更新:: 2026/7/6 09:32
Contributors: seepine
Prev
设置
Next
会话