DL — 删除行(CSI Pn M)
删除从光标所在行起的 N 行,把后续行向上拉(在滚动区域内)—— vim 'dd' 命令的底层原语。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[PnM\\033[
\033[PnM\\e[
\e[PnMESC [
ESC [ Pn Mhex
1b 5b <Pn> 4d说明
Delete Line。末字节 `M`(0x4d)—— 从光标所在行起删除 `Pn` 行(默认 1);活动滚动区域(DECSTBM)内下方的每一行向上拉 `Pn`,区域底部出现 `Pn` 行新空行(携当前 SGR 背景色)。光标移至所在行的第 1 列(与 IL 同样的 xterm-vs-spec 列重置行为)。DL 是 `vim` 的 `dd` 命令、`less` 让顶端一行滚出可视区、`tmux` 窗格调整大小的底层原语。逆操作是 IL(`\x1b[Pn L`);与 `\x1b[T;Br`(DECSTBM)配合可实现原子化的小区域滚动而无需重绘整屏。terminfo 能力名为 `dl1`(Pn=1)或 `dl`(带参数)。
规范出处: ECMA-48 §8.3.32 (DL)
示例
# Set scroll region rows 1..5, position cursor at row 2, delete 1 line.\nprintf '\033[1;5r\033[2;1H\033[1M'import sys; sys.stdout.write('\x1b[1M')fmt.Print("\x1b[1M")process.stdout.write('\x1b[1M')printf("\x1b[1M");终端支持
- 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