跳到主要内容
ansicode

DCH — 删除字符(CSI Pn P)

删除光标处 N 个单元,把剩余内容左移填补 —— ICH 的逆操作。

字节形式

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

\\x1b[\x1b[PnP
\\033[\033[PnP
\\e[\e[PnP
ESC [ESC [ Pn P
hex1b 5b <Pn> 50

说明

Delete Character。末字节 `P`(0x50)—— 从光标处删除 `Pn` 个单元(默认 1),其右侧每个单元左移 `Pn` 列;行尾出现的 `Pn` 个单元为空格(SP,0x20,带当前 SGR 背景色)。光标位置不变。DCH 是 `vim`/`emacs` 行内退格、`less` 抹掉屏幕底端提示、readline 编辑提示符所用的底层原语。与 ICH(`\x1b[Pn @`)成对。DCH 受 DECSTBM 列边距(若启用)约束 —— 右边距外的单元不被拉入。terminfo 能力名为 `dch1`(Pn=1)或 `dch`(带参数)。

规范出处: ECMA-48 §8.3.26 (DCH)

示例

bash
# Print 'Hello world', move cursor to column 6, delete 6 cells.\nprintf 'Hello world\033[6G\033[6P'   # leaves 'Hello' followed by trailing blanks
python
import sys; sys.stdout.write('\x1b[3P')
go
fmt.Print("\x1b[3P")
javascript
process.stdout.write('\x1b[3P')
c
printf("\x1b[3P");

终端支持

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