Issue: 小键盘输入在 Windows Terminal + Kitty 协议下导致显示异常

✦ Issue: 小键盘输入在 Windows Terminal + Kitty 协议下导致显示异常

环境信息

  • iFlow CLI 版本: 0.5.18
  • 操作系统: Windows 10/11 (10.0.26100)
  • 终端: Windows Terminal
  • Shell: PowerShell / CMD

问题描述
在 iFlow CLI 中使用小键盘输入数字时会出现显示异常:

  • 左上角出现白色标记
  • 输入无响应
  • 需要按 Ctrl+C 才能恢复输入框,但渲染仍不正常

复现步骤

  1. 打开 Windows Terminal(默认开启Kitty 键盘协议的任何配置)
  2. 运行 iflow
  3. 按小键盘任意数字键(包括enter),或者按ctrl+enter
  4. 观察显示异常

根本原因
Windows Terminal 在 Kitty 键盘协议启用时,小键盘输入会发送转义序列:
\x1b[13;133u

iFlow CLI 在以下条件同时满足时无法正确解析这些序列:

  • Kitty 键盘协议已启用(默认)
  • VT 输入模式已启用(默认)

临时解决方案
在 Windows Terminal 配置文件设置中:

  1. 关闭 “Kitty 键盘协议”(如果有该选项)
  2. 开启 “使用旧输入编码”(这会关闭VT 输入模式)

✦ 建议修复方向

  1. 正确实现 Kitty 键盘协议解析器
  2. 启动时检测并禁用 Kitty 协议,使用回退输入模式
  3. 添加配置选项允许用户禁用 Kitty 协议检测

PS:以上内容由iflow辅助编写,希望同样遇到这个问题,但还是想在这个月继续使用iflow的论坛成员们能根据我的经验暂时规避这个问题。

1 个赞

感谢分享