跳到主要内容
ansicode

ECH — 擦除字符(CSI Pn X)

在光标处原地擦除 N 个单元 —— 形状与 DCH 相同,但行剩余内容不左移。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[PnX
\\033[\033[PnX
\\e[\e[PnX
ESC [ESC [ Pn X
hex1b 5b <Pn> 58

说明

Erase Character。末字节 `X`(0x58)—— 从光标处起把 `Pn` 个单元(默认 1)替换为空格(SP,0x20,带当前 SGR 背景色)。光标不动,行剩余内容也不左移 —— 这是与 DCH(`\x1b[Pn P`)的关键区别。当程序需要清空一个固定宽度的字段(输入提示、表格单元、进度条段)而不影响周围内容时使用。ECH 受 DECSTBM 列边距(若启用)约束 —— 右边距外的单元不被波及。terminfo 能力名为 `ech`(带参数;不存在 `ech1`,因为「不左移」的语义使带参数形式被普遍需要)。

规范出处: ECMA-48 §8.3.38 (ECH)

示例

bash
# Print a 10-char field, position at col 1, erase 5 chars in place (rest of line preserved).\nprintf '0123456789\033[1G\033[5X'
python
import sys; sys.stdout.write('\x1b[5X')   # clear 5 cells in place
go
fmt.Print("\x1b[5X")
javascript
process.stdout.write('\x1b[5X')
c
printf("\x1b[5X");

终端支持

xterm
支持
Linux console (fbcon)
支持
macOS Terminal.app
支持
iTerm2
支持
Windows Terminal
支持
cmd.exe / ConPTY
部分
kitty
支持
alacritty
支持
WezTerm
支持
Ghostty
支持
GNOME Terminal
支持
Konsole
支持
tmux
不支持
GNU screen
不支持

相关序列

在家族食谱中

CSI 食谱 · 6. 插入 / 删除 / 光标形状 —— IL / DL / ICH / DCH / ECH + DECSCUSR