不占格子的终端边框:把边框做成单元格属性而不是字符
来源:joshka.net — 2026-11-13
📋 概述
Ratatui 维护者提出一个终端协议扩展:边框不再是 Unicode 制表符,而是单元格的一种属性——每个格子最多携带十二条线段,四边各分两半,另有四根从中点出发的臂,每条线段各有颜色、宽度、位置与样式。他已经把它做成 Ghostty 的补丁(更早在 Rio 里做过一版),并写了 Ratatui 演示程序。核心收益是不再为一根线牺牲一行一列。
🔑 核心要点
- Unicode 制框符一共 128 个字符仍然不够用,而且每条线都要占满一个单元格
- 16 寸笔记本上终端约 200x50,嵌套两层面板就能白扔 6 到 8 行给装饰线
- 协议走带命名空间的 DCS 串,用一个「笔」刷属性,另有矩形命令与能力查询;DA1 回复里没有 cell-border 即回退制框符
- 边框存在单元格里,所以滚动、擦除、插入、回流天然有答案;复制粘贴也不会再粘出满屏 │
- 线型支持实线、双线、虚线、点线,拐角可圆角并指定外部颜色;相邻格同一侧线自动合并,按优先级决胜
- 边被拆成两半是为了和象限块字符对齐,未来还能扩到六分格、八分格
💡 金句
框字符的本质问题在于它们是文本:每条线是一个占满整格的字形,所有恼人的地方都由此而来。
← 返回 Lobsters 首页
👍 0
👎 0