DECDC / DECIC — 删除 / 插入列(CSI Pn ' ~ / CSI Pn ' })
在光标处删除(DECDC)或插入(DECIC)Pn 列 —— DL(CSI Pn M)与 IL(CSI Pn L)的列向版本。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[<Pn>'~ (DECDC) \x1b[<Pn>'} (DECIC)\\033[
\033[1'~ / \033[1'}\\e[
\e[1'~ / \e[1'}ESC [
ESC [ Pn ' ~ / ESC [ Pn ' }hex
1b 5b ... 27 7e / 1b 5b ... 27 7d说明
DEC VT520+ 的矩形编辑原语。**DECDC**(`\x1b[<Pn>'~`)从光标所在列开始删除 `Pn` 列 —— 删除位置右侧的每一格向左移动 `Pn` 列,最右侧的 `Pn` 列以当前 SGR 背景色填充空白。**DECIC**(`\x1b[<Pn>'}`)相反 —— 在光标列插入 `Pn` 个空白列,原有内容右移,从右侧溢出的部分被丢弃。两者都遵循当前激活的 DECSTBM(纵向滚动区域)**与** DECSLRM(横向滚动区域),因此编辑只作用于活动矩形而非整屏。注意中间字节:参数与末字节之间是字面单引号 `'`(0x27),手写时容易遗漏。默认 `Pn=1`。除 xterm 与 wezterm 外支持稀薄 —— alacritty、ghostty、kitty 主模式都会忽略。曾被 VT520 表格 / 表单编辑器使用;现代 TUI 几乎清一色重绘代替。
规范出处: DEC VT520 RM (DECDC / DECIC) / xterm-ctlseqs
参数
| Pn | 要删除(DECDC)或插入(DECIC)的列数。默认 1。 |
示例
printf '\033[3\x27~' # DECDC: delete 3 cols at cursor (note literal ' before ~)import sys; sys.stdout.write("\x1b[2'}") # DECIC: insert 2 blank colsfmt.Print("\x1b[1'~") // DECDC: delete 1 colprocess.stdout.write("\x1b[5'}") // DECIC: insert 5 colsprintf("\x1b[1'~"); /* DECDC: delete one column at cursor */终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 不支持 | 部分 | 不支持 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 部分 | 不支持 | 不支持 |