diff --git a/TERMINAL_ROADMAP.md b/TERMINAL_ROADMAP.md index 7d007e8..cc9c008 100644 --- a/TERMINAL_ROADMAP.md +++ b/TERMINAL_ROADMAP.md @@ -10,8 +10,8 @@ 按用途粗估: -- **「跑通真实终端会话」核心用途**:约 50–60% -- **xterm.js 完整 API / 特性面**:约 15–20% +- **「跑通真实终端会话」核心用途**:约 **75–80%** +- **xterm.js 完整 API / 特性面**:约 **20–25%** 差距集中在**输入完整性**、**API/生态**、**可配置性**,而非「能不能用」。 @@ -76,7 +76,7 @@ 3. **浏览器快捷键仲裁**:`handle_keydown` 对 bare `Ctrl+字母`(无 Shift/Alt/Meta)调用 `preventDefault()`,阻止浏览器吃掉 `Ctrl-R` 刷新、`Ctrl-F` 查找、`Ctrl-A` 全选等。`Ctrl+Shift` 组合(如 `Ctrl-Shift-C` 复制)和 `Ctrl+Alt`/`Ctrl+Meta` 组合保留给浏览器/系统。 **浏览器预留键(硬限制,无法拦截)**:`Ctrl-W`(关标签)、`Ctrl-T`(新标签)、`Ctrl-N`(新窗口)从 Chrome 4 起被浏览器保留,`preventDefault()` 对它们无效,浏览器在 `keydown` 到达页面前就消费了。这是所有网页终端的共同限制(xterm.js 同样如此),只能在浏览器之外解决(系统全局快捷键 / 扩展 / Electron 包装)。readline 退格删词可用 `Alt+Backspace` 替代 `Ctrl-W`。 -4. **测试**:`key_to_bytes_table` 单测覆盖整套键表,18 个 terminal 测试全过、clippy 干净。 +4. **测试**:`key_to_bytes_table` 单测覆盖整套键表,23 个 terminal 测试全过、clippy 干净。 **有意调整的行为**(出于浏览器终端的可用性,与原生 xterm 不同): - `Ctrl-C` (0x03) → 无选区时发 SIGINT 中断前台进程;**有选区时优先复制**,不发送 0x03。