Kimi Code CLI Shell 键盘快捷键完全指南:模式切换、Steer 注入与交互面板操作 📅 发布时间:2026/9/15 20:08:23 👁 浏览次数: Kimi Code CLI Shell 键盘快捷键完全指南模式切换、Steer 注入与交互面板操作【免费下载链接】kimi-cliKimi Code CLI is your next CLI agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cliKimi Code CLIkimi-cli的 Shell 模式是日常与 AI 协作的主入口其全部交互能力都建立在底部的键盘快捷键体系之上。本文以官方文档 docs/zh/reference/keyboard.md 为主体逐键拆解模式切换、Plan 模式、外部编辑器、多行输入、剪贴板与媒体粘贴、Streaming 期间的消息注入、审批与结构化问答等全部快捷键并对照 键盘监听实现 与 快捷键绑定源码 说明其底层原理。读完本文你将能像操作 IDE 一样高效驾驶 kimi-cli随时在 Agent / Shell 模式间切换、在 AI 运行时即时插入指令、快速审批或拒绝工具调用并彻底掌握补全与状态栏的每一个细节。快捷键总览Kimi Code CLI Shell 模式支持以下键盘快捷键来源docs/zh/reference/keyboard.md快捷键功能Ctrl-X切换 Agent/Shell 模式Shift-Tab切换 Plan 模式只读研究与规划Ctrl-O在外部编辑器中编辑$VISUAL/$EDITORCtrl-J插入换行Alt-Enter插入换行同Ctrl-JCtrl-SSteer在 streaming 期间将输入立即注入到正在运行的轮次Ctrl-V粘贴支持图片和视频文件Ctrl-E展开审批请求完整内容1–4审批面板快速选择4为附带反馈拒绝1–5问题面板按编号选择选项Ctrl-D退出 Kimi Code CLICtrl-C中断当前操作这些快捷键并非在 UI 层硬编码而是由两层机制协作完成底层按键采集KeyboardListener在独立线程中监听原始键盘事件Unix 平台通过termios关闭ICANON与ECHO进入 raw 模式逐字节读取Windows 平台则使用msvcrt随后将按键归一化为KeyEvent枚举ENTER、ESCAPE、TAB、SPACE、CTRL_E、NUM_1~NUM_6等见 keyboard.py 中的 KeyEvent 定义与平台分发高层键位绑定输入框基于 prompt_toolkit 的KeyBindings注册c-x、s-tab、c-o、c-j、c-s、c-e、c-v等组合键处理器见 prompt.py 中的_kb.add(...)绑定。了解这一分层后下面的每个快捷键都能对应到具体代码路径。模式切换Ctrl-X切换 Agent/Shell 模式在输入框中按Ctrl-X可在两种模式间切换Agent 模式输入发送给 AI Agent 处理这是默认模式Shell 模式输入作为本地 Shell 命令执行无需离开 CLI 即可跑ls -la、git status、npm run build等命令。源码层面PromptMode枚举定义了AGENT/SHELL两种状态toggle()负责翻转而Ctrl-X绑定处理器在切换后调用_apply_mode(event)同步替换当前缓冲区的补全器——Agent 模式使用斜杠命令 文件路径合并补全器Shell 模式则只保留斜杠命令补全见 prompt.py 的PromptMode与_apply_mode。每次切换还会通过track(shortcut_mode_switch, ...)记录遥测事件。提示符会根据当前模式变化模式提示符Agent 模式普通✨Agent 模式ThinkingPlan 模式Shell 模式$这些符号在 prompt.py 顶部以常量定义PROMPT_SYMBOL ✨、PROMPT_SYMBOL_SHELL $、PROMPT_SYMBOL_THINKING 、PROMPT_SYMBOL_PLAN 。Shift-Tab切换 Plan 模式按Shift-Tab可以开启或关闭 Plan 模式。Plan 模式下 AI 只能使用只读工具探索代码库如Glob、Grep、ReadFile将实施方案写入 plan 文件后提交给你审批不会修改任何文件或执行命令。开启时提示符变为状态栏显示蓝色的plan标识。在实现上s-tab绑定通过_plan_mode_toggle_callback异步切换状态并以 toast 提示plan mode ON/plan mode OFF同时记录shortcut_plan_toggle遥测事件见 prompt.py 的s-tab绑定。进入 Plan 模式后输入区标题会变为蓝色虚线样式╌╌ input · plan ╌╌正常模式为灰色实线── input ──见 prompt.py 的输入区标题渲染。进入/退出 Plan 模式的方式不止快捷键一种还包括启动参数kimi --plan直接以 Plan 模式启动斜杠命令/plan、/plan on、/plan offAI 主动触发AI 通过EnterPlanMode工具请求进入 Plan 模式。完整的 Plan 模式行为审批方案、/plan view、/plan clear等可参考 交互指南。值得注意的是在 YOLO 模式下 AI 请求进入 Plan 模式会自动通过但退出时仍需审批AFK 模式下进入和退出都会自动批准。外部编辑器Ctrl-O在外部编辑器中编辑按Ctrl-O会打开外部编辑器如 VS Code、Vim编辑当前输入内容适合编写多行 prompt、复杂代码片段等场景。编辑器按以下优先级选择/editor命令配置的编辑器$VISUAL环境变量$EDITOR环境变量自动检测code --waitVS Code→vim→vi→nano这个优先级在 utils/editor.py 的get_editor_command中实现先尝试配置值用shlex.split解析再依次读取$VISUAL、$EDITOR最后通过shutil.which探测候选编辑器。注意 VS Code 必须使用code --wait才能阻塞等待文件关闭见 编辑器候选列表。在编辑器中保存退出后编辑后的内容会替换当前输入框内容。如果不保存退出如 Vim 中:q!输入框内容保持不变——实现的依据是文件 mtime 未变化时返回None见 edit_text_in_editor。如果输入中包含粘贴文本占位符编辑器会自动展开为原始文本供你编辑保存后未修改的部分会重新折叠为占位符这一展开-重折叠逻辑由 PromptPlaceholderManager.expand_for_editor / refold_after_editor 完成。使用/editor命令可交互式切换编辑器也可直接指定如/editor vim。如果没有找到任何可用编辑器CLI 会弹出提示No editor found. Set $VISUAL/$EDITOR or run /editor.见 prompt.py 的_open_in_external_editor。多行输入Ctrl-J/Alt-Enter插入换行默认情况下按Enter会提交输入。如需输入多行内容多行代码片段或格式化文本可使用Ctrl-J在任意位置插入换行Alt-Enter在任意位置插入换行两者在源码中是同一条绑定escapeenterAlt-Enter 的键序与c-j都指向同一个处理器调用buffer.insert_text(\n)并记录shortcut_newline遥测事件见 prompt.py 的新行绑定。输入完成后按Enter发送整条消息。剪贴板操作Ctrl-V粘贴按Ctrl-V粘贴剪贴板内容到输入框支持文本、图片和视频文本在 Agent 模式下超过 1000 字符或 15 行的文本会自动折叠为[Pasted text #n]多行时形如[Pasted text #n 12 lines]占位符保持输入框整洁完整内容在发送时展开传递给模型。使用Ctrl-O打开外部编辑器时占位符会自动展开为原始文本保存后重新折叠图片缓存到磁盘并显示为[image:xxx.png,WxH]占位符实际图片数据在发送时一并传递给模型需模型支持图片输入视频文件文件路径以文本形式插入输入框需模型支持视频输入。::: tip 提示 图片粘贴需要模型支持image_in能力视频粘贴需要模型支持video_in能力。 :::实现细节可从 placeholders.py 中确认文本折叠阈值由环境变量控制KIMI_CLI_PASTE_CHAR_THRESHOLD默认 1000 字符与KIMI_CLI_PASTE_LINE_THRESHOLD默认 15 行见 阈值定义与判断函数图片通过AttachmentCache以 PNG 格式缓存到prompt-cache/images目录基于内容 sha256 去重发送时转成 base64data:URI 注入消息内容见 AttachmentCache 与 ImagePlaceholderHandler占位符的解析、展开与序列化统一由PromptPlaceholderManager.resolve_command在发送前完成见 占位符解析入口。Ctrl-V绑定仅在剪贴板可用时注册粘贴流程为先尝试媒体粘贴_try_paste_media失败再回退到文本粘贴见 prompt.py 的c-v绑定。此外还注册了Keys.BracketedPaste处理终端括号粘贴协议。Streaming 期间输入当 AI 正在执行任务streaming 进行中时你可以通过两种方式发送后续消息无需等待当前轮次结束。这部分交互路由逻辑集中在 visualize/_interactive.py 的输入路由。Ctrl-SSteer立即注入在 streaming 期间按Ctrl-S提交当前输入或弹出最早的排队消息并立即注入到正在运行的轮次上下文中。模型会立即看到你的消息无需等待当前轮次结束。如果输入框为空且有排队消息Ctrl-S会弹出最早的排队消息并注入。实现上Ctrl-S命中c-s键位后走handle_immediate_steer将输入内容通过steer()回调注入当前运行中的模型上下文见 immediate steer 实现。tests/ui_and_conv/test_btw.py中覆盖了Ctrl-S的多种边界情况BTW 路由、普通文本 steer、Shell 命令拦截、弹出最早排队消息、输入与队列均为空时无操作见 test_ctrl_s_* 系列测试。Enter排队在 streaming 期间按Enter将消息排入队列等当前轮次完成后再发送。排队消息数量显示在输入区标题中如── input · 2 queued ──。在空输入框中按↑可召回最后一条排队消息进行编辑。队列计数来自运行中的 prompt delegate 的_queued_messages见 prompt.py 的标题渲染 与 排队消息存储。::: tip 提示 如果需要立即中断 AI 的执行请使用Ctrl-C详见下文退出与中断。 :::审批请求操作当 AI 需要执行可能有影响的操作如修改文件、运行命令时会弹出审批面板请求确认。Ctrl-E展开完整内容当审批请求的预览内容被截断时按Ctrl-E可以在全屏分页器中查看完整内容。预览被截断时会显示... (truncated, ctrl-e to expand)提示该提示文本定义于 审批面板源码。全屏分页功能由show_approval_in_pager提供见 分页器入口面板底部还会显示ctrl-e expand操作提示。适用于查看较长的 Shell 命令或文件 Diff 内容。数字键快速选择在审批面板中按1–3可以直接选中并提交对应的审批选项无需先用方向键选择再按Enter。按4进入反馈模式输入拒绝原因后按 Enter 提交反馈文本会传递给 Agent 以指导下一次尝试。审批面板支持的操作键集合在 交互路由源码 中声明为{up, down, enter, 1, 2, 3, 4}数字键会被映射为KeyEvent.NUM_1~NUM_4。审批选项通常包括允许执行本次操作、本会话允许当前会话自动批准同类操作随会话持久化、拒绝不执行、附带反馈拒绝拒绝并输入文字反馈。如需跳过审批确认可使用 YOLO 模式kimi --yolo或/yolo或 AFK 模式kimi --afk或/afk。结构化问答操作当 AI 使用AskUserQuestion工具向你提问时问题面板由 visualize/_question_panel.py 渲染支持以下键盘操作快捷键功能↑/↓浏览选项←/→/Tab切换问题多问题模式1–5按编号选择选项单选时自动提交多选时切换选中状态Space单选模式下提交选择多选模式下切换选中状态Enter确认选择Esc跳过问题当 AI 一次提出多个问题时问题面板会以标签页形式展示使用←/→或Tab可在问题间切换已回答的问题会标记为已完成状态绿色✓切换回已回答的问题时会恢复之前的选择——这一保存-恢复机制在 QuestionRequestPanel 的_saved_selections与_setup_current_question中实现。此外Other 选项允许输入自定义文本每个问题支持 2–4 个预定义选项。退出与中断Ctrl-D退出在输入框为空时按Ctrl-D退出 Kimi Code CLI。Ctrl-C中断Ctrl-C在不同场景下行为不同在输入框中清空当前输入Agent 运行时中断当前操作斜杠命令执行时中断命令。在输入框有内容时Ctrl-C只负责清空输入避免误触直接终止整个会话而在 Agent 运行期间Ctrl-C通过_handle_running_prompt_key(c-c, event)路由给运行中的 delegate 执行中断见 prompt.py 的c-c绑定。补全操作在 Agent 模式下输入时会自动显示补全菜单触发补全内容/斜杠命令工作目录文件路径补全操作方向键选择Enter确认选择Esc关闭菜单继续输入过滤选项补全的实现分为两条路径斜杠命令补全SlashCommandCompleter基于 prompt_toolkit 的FuzzyCompleter做模糊匹配只会在当前 token 以/开头时激活支持别名匹配显示(alias)标记并插入规范命令名见 prompt.py 的 SlashCommandCompleter。Enter在斜杠补全菜单打开时会一步完成接受并提交见 enter 绑定而文件补全菜单下Enter只接受补全不提交路径补全LocalFileMentionCompleter索引工作目录文件在 Git 仓库中优先用git ls-files查询文件列表可应对数万文件的大型仓库非 Git 项目回退到目录扫描并按 basename 匹配优先排序见 prompt.py 的 LocalFileMentionCompleter。的触发还有前置守卫若前一个字符是字母数字或 # ~ .等字符则不触发避免误补全。状态栏底部状态栏显示当前时间当前模式agent/shell和模型名称Agent 模式下显示YOLO 标识开启时显示黄色标识AFK 标识开启时显示橙色标识Plan 标识开启时显示蓝色标识快捷键提示上下文使用率状态栏会自动刷新更新信息。刷新采用两级间隔Agent 运行或有快速刷新需求时每 0.1 秒刷新_RUNNING_REFRESH_INTERVAL空闲时每 1 秒刷新_IDLE_REFRESH_INTERVAL见 prompt.py 的状态刷新任务。快捷键提示来自_build_toolbar_tips见 prompt.py 的提示列表默认提示包括ctrl-x: toggle mode、shift-tab: plan mode、ctrl-o: editor、ctrl-j: newline、ctrl-v: paste clipboard、: mention files等会按 30 秒间隔轮换显示且仅在剪贴板可用时才提示ctrl-v。小结Kimi Code CLI 的键盘体系覆盖了从输入到审批的完整交互闭环Ctrl-X切换输入去向、Shift-Tab控制只读规划、Ctrl-J/Alt-Enter支持多行、Ctrl-V携带多媒体上下文、Ctrl-S/Enter在 streaming 期间即时或排队介入、Ctrl-E与数字键完成审批与问答、Ctrl-D/Ctrl-C安全退出与中断。这些能力分别由 键盘监听、prompt 键位绑定、交互路由、审批面板 与 问题面板 协作实现配合 交互指南 中关于模式与审批流程的说明即可形成一套高效、不离开键盘的 Agent 驾驶体验。【免费下载链接】kimi-cliKimi Code CLI is your next CLI agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考