Skip to content

[Windows] Ctrl+V 无法在 Windows Terminal 中粘贴图片,建议添加 Alt+V 备选快捷键 #781

@nzinfo

Description

@nzinfo

问题描述

在 Windows Terminal 中使用 Kimi Code CLI 时,Ctrl+V 快捷键无法粘贴剪贴板中的图片。这是因为 Windows Terminal 默认会拦截 Ctrl+V 用于自身的粘贴操作,导致该快捷键无法传递给 Kimi CLI。

复现步骤

  1. 在 Windows 系统上打开 Windows Terminal
  2. 启动 Kimi Code CLI (kimi)
  3. 复制一张图片到剪贴板(如截图工具)
  4. 在 Kimi CLI 输入框中按 Ctrl+V
  5. 观察结果:图片没有被粘贴,或者只能粘贴图片的路径文本(而非图片本身)

预期行为

按下粘贴快捷键后,剪贴板中的图片应该被识别并转换为 [image:xxx.png,WxH] 占位符插入到输入框中。

实际行为

  • Ctrl+V 被 Windows Terminal 拦截
  • 无法通过键盘快捷键粘贴图片
  • 用户只能使用鼠标右键粘贴(替代方案)

环境信息

  • 操作系统: Windows 10/11
  • 终端: Windows Terminal (默认配置)
  • Kimi CLI 版本: 最新版
  • 安装方式: uv tool install kimi-cli

参考:Claude Code 的解决方案

Claude Code 在 Windows 上同时支持以下两种快捷键来粘贴图片:

  • Ctrl+V - 标准粘贴快捷键
  • Alt+V (或 M-V) - Windows Terminal 备选快捷键

这确保了在 Windows Terminal 拦截 Ctrl+V 的情况下,用户仍然可以使用 Alt+V 粘贴图片。

相关代码参考(Claude Code 的实现):

# 同时绑定两个快捷键
@_kb.add("c-v", eager=True)
@_kb.add("escape", "v", eager=True)  # Alt+V

建议的解决方案

kimi_cli/ui/shell/prompt.py 中,为粘贴功能添加 Alt+V 备选快捷键:

if is_clipboard_available():
    @_kb.add("c-v", eager=True)
    @_kb.add("escape", "v", eager=True)  # 添加 Alt+V 支持
    def _(event: KeyPressEvent) -> None:
        if self._try_paste_image(event):
            return
        clipboard_data = event.app.clipboard.get_data()
        event.current_buffer.paste_clipboard_data(clipboard_data)

    clipboard = PyperclipClipboard()
else:
    clipboard = None

临时解决方案(用户侧)

在等待官方修复之前,Windows 用户可以:

  1. 使用鼠标右键粘贴 - Windows Terminal 支持右键点击粘贴剪贴板内容
  2. 修改 Windows Terminal 设置 - 取消 Ctrl+V 的默认粘贴绑定,让其传递给应用程序
  3. 使用文件引用 - 将图片保存为文件,然后用 @filename.png 引用

附加信息


感谢开发者的辛苦工作!希望这个小的改进能让 Windows 用户的使用体验更加顺畅。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions