跳到主要内容
ansicode

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 ' }
hex1b 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。

示例

bash
printf '\033[3\x27~'   # DECDC: delete 3 cols at cursor (note literal ' before ~)
python
import sys; sys.stdout.write("\x1b[2'}")   # DECIC: insert 2 blank cols
go
fmt.Print("\x1b[1'~")   // DECDC: delete 1 col
javascript
process.stdout.write("\x1b[5'}")   // DECIC: insert 5 cols
c
printf("\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
不支持

相关序列