DECSET 1049 — 备用屏幕缓冲
切换到独立屏幕缓冲区(vim/less 启动时使用)。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[?1049h (enter) \x1b[?1049l (leave)\\033[
\033[?1049h / \033[?1049l\\e[
\e[?1049h / \e[?1049lESC [
ESC [ ? 1 0 4 9 h / lhex
1b 5b 3f 31 30 34 39 68 / 6c说明
DEC 私有模式 1049 是「进入全屏应用」的标准序列。进入(`h`)时,终端保存光标,切换到新的屏幕缓冲(无回滚),并清屏。离开(`l`)时,恢复原缓冲和光标 —— 这正是 `vim`/`less` 退出后命令行提示符回到原位置的原因。早期模式 47 和 1047 行为类似,但缺少光标保存/恢复以及清屏。
规范出处: xterm-ctlseqs (Private modes)
示例
printf '\033[?1049h'; sleep 2; printf '\033[?1049l'import sys, time\nsys.stdout.write('\x1b[?1049h'); sys.stdout.flush(); time.sleep(2); sys.stdout.write('\x1b[?1049l')fmt.Print("\x1b[?1049h"); time.Sleep(2*time.Second); fmt.Print("\x1b[?1049l")process.stdout.write('\x1b[?1049h'); setTimeout(() => process.stdout.write('\x1b[?1049l'), 2000)printf("\x1b[?1049h"); sleep(2); printf("\x1b[?1049l");终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |