✦ Issue: 小键盘输入在 Windows Terminal + Kitty 协议下导致显示异常
环境信息
- iFlow CLI 版本: 0.5.18
- 操作系统: Windows 10/11 (10.0.26100)
- 终端: Windows Terminal
- Shell: PowerShell / CMD
问题描述
在 iFlow CLI 中使用小键盘输入数字时会出现显示异常:
- 左上角出现白色标记
- 输入无响应
- 需要按 Ctrl+C 才能恢复输入框,但渲染仍不正常
复现步骤
- 打开 Windows Terminal(默认开启Kitty 键盘协议的任何配置)
- 运行 iflow
- 按小键盘任意数字键(包括enter),或者按ctrl+enter
- 观察显示异常
根本原因
Windows Terminal 在 Kitty 键盘协议启用时,小键盘输入会发送转义序列:
\x1b[13;133u
iFlow CLI 在以下条件同时满足时无法正确解析这些序列:
- Kitty 键盘协议已启用(默认)
- VT 输入模式已启用(默认)
临时解决方案
在 Windows Terminal 配置文件设置中:
- 关闭 “Kitty 键盘协议”(如果有该选项)
- 开启 “使用旧输入编码”(这会关闭VT 输入模式)
✦ 建议修复方向
- 正确实现 Kitty 键盘协议解析器
- 启动时检测并禁用 Kitty 协议,使用回退输入模式
- 添加配置选项允许用户禁用 Kitty 协议检测
PS:以上内容由iflow辅助编写,希望同样遇到这个问题,但还是想在这个月继续使用iflow的论坛成员们能根据我的经验暂时规避这个问题。
