Skip to content

docs(research): freeze Vim for Windows trajectory and protocol expectations (#28) - #307

Merged
JavaZeroo merged 1 commit into
mainfrom
feat/tui-vim-trajectory-r28
Nov 1, 2026
Merged

JavaZeroo merged 1 commit into
mainfrom
feat/tui-vim-trajectory-r28

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

范围(#28 应用矩阵第 2 项,有界切片)

复用 More 切片(PR #306)的成熟模式:冻结 Vim for Windows 轨迹 + 独立协议预期 + 产品配置冒烟。只冻结轨迹与预期,不改产品行为,不代表 #28 整体验收。

交付

  • 冻结身份与动作序列:Windows 11 x64 固定 Vim 9.1 patches 1–532(Git for Windows 自带,EXE SHA-256 2e0fda63…,msys-2.0.dll 3096d2ba…),入口沿用 experiments/conpty/real_app_capture.cpp:135,动作 = 进入 → 插入 → 保存退出 → 主屏恢复;尺寸含 80×24 主轨迹与 60×12 变体。见 docs/research/tui-vim-trajectory-2026-11-02.md。
  • 独立协议预期:逐步写出 1049 进出、DA1/DA2、DSR 6n、DECSTBM、ED2、DECCKM/DECTCEM、括号粘贴、XTWINOPS 标题的期望字节,来源 = vim-windterm-reference.md 与 Vim 公开行为。
  • 产品配置冒烟:固定 ConPTY 1.25 驱动 Vim,全轨迹 3 次捕获逐字节一致;recovery 回放进入/插入/保存/退出/主屏恢复全程通过(exit 0);strict 在偏移 31 的 ESC[22;0;0t 以 too many CSI parameters 失败。冻结样本 experiments/core/fixtures/vim-fixed-80x24-trajectory.bin 与 vim-fixed-60x12-trajectory.bin,逐阶段记录 experiments/shell/results/2026-11-02-tui-vim/validation.json。

关键结论

  • 与 More 相反:More 固定 ConPTY strict 双通;Vim 全屏协议更丰富(1049/DA/DSR/DECSTBM/XTWINOPS 标题/括号粘贴/DCS 同步),strict 尚不能承载。
  • strict 失败根因在 terminal.hpp:81-82 参数门限(非 H/f/r 终字节 CSI 限 1 参数)早于 terminal.hpp:100-108 的 t 分支;DA2、括号粘贴、DCS 同步、多参数 XTWINOPS 标题未实现。
  • 60×12 是 ConPTY 60 列 × 12 行视口,非原版 60×3000 缓冲区(dwSize vs srWindow),二者不合并。

限制

验证

本机 Windows 11(10.0.26200.9711)CMake + Visual Studio 17.12 构建 recovery_probe/replay 回放 frozen 样本,机器可读结果见 validation.json。

@JavaZeroo
JavaZeroo merged commit 68eeb93 into main Nov 1, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant