DCH — 删除字符(CSI Pn P)
删除光标处 N 个单元,把剩余内容左移填补 —— ICH 的逆操作。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[PnP\\033[
\033[PnP\\e[
\e[PnPESC [
ESC [ Pn Phex
1b 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)
示例
# Print 'Hello world', move cursor to column 6, delete 6 cells.\nprintf 'Hello world\033[6G\033[6P' # leaves 'Hello' followed by trailing blanksimport sys; sys.stdout.write('\x1b[3P')fmt.Print("\x1b[3P")process.stdout.write('\x1b[3P')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
- 不支持
| 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