终端可见字符宽度
灵感:热门库 string-width(Get the visual width of a string)。
> 小四原创:文本 →(可选去色)→ stringWidth → 列宽。
> 与 strip-ansi 互补:先去色再量宽更准。
何时使用
- CLI 表格/进度条对齐
- 按列宽截断输出
- 中英文混排占位估算
硬约束
- 依赖:
string-width。 - 含 ANSI 颜色时先
strip-ansi再量宽(或确认库行为)。 - 实现要点注释标 小四原创。
- 不做完整 terminal table 组件。
推荐实现
import stringWidth from 'string-width'
import stripAnsi from 'strip-ansi'
// 小四原创:终端可见字符宽度
export function visibleWidth(text: string) {
return stringWidth(stripAnsi(text))
}
Agent 步骤
npm i string-width(建议同装strip-ansi)。- 封装
visibleWidth用于对齐。 - 自测:
'你好'宽度大于'hi';带颜色码不影响(去色后)。
不要做
- 用
text.length当终端列宽。 - 与
strip-ansi-text整篇复读:本 Skill 侧重 量宽。
附加
- README.md · reference.md · templates/usage.md