IL — 插入行(CSI Pn L)
在光标所在行打开 N 行空行,把后续行向下推(在滚动区域内)—— vim 'O' 命令的底层原语。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[PnL\\033[
\033[PnL\\e[
\e[PnLESC [
ESC [ Pn Lhex
1b 5b <Pn> 4c说明
Insert Line。末字节 `L`(0x4c)—— 在光标所在行插入 `Pn` 行空行(默认 1);活动滚动区域(DECSTBM,默认 = 整屏)内随后的每一行向下推 `Pn`,会超出下边距的 `Pn` 行被丢弃。新插入的空行单元携带当前 SGR 背景色。光标移至所在行的第 1 列(ECMA-48 规定列不变,但多数现代终端遵循 xterm 惯例 —— 重置到第 1 列,因为这正是所有 TUI 程序的预期)。用途:`vim` 的 `O` 命令(在上方开新行)、`tmux` 窗格重布局、`less` 风格的整组向上滚动。逆操作是 DL(`\x1b[Pn M`)。terminfo 能力名为 `il1`(Pn=1)或 `il`(带参数)。
规范出处: ECMA-48 §8.3.67 (IL)
示例
# Set scroll region rows 1..5, position cursor at row 3, insert 2 blank lines.\nprintf '\033[1;5r\033[3;1H\033[2L'import sys; sys.stdout.write('\x1b[2L') # insert 2 lines at cursor rowfmt.Print("\x1b[2L")process.stdout.write('\x1b[2L')printf("\x1b[2L");终端支持
- 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