RIS — 重置到初始状态(终端硬重置)
终端硬重置:清屏 + 清回滚、重置所有模式与 SGR、光标回到原点。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1bc\\033[
\033c\\e[
\ecESC [
ESC chex
1b 63说明
Reset to Initial State。仅两个字节 —— ESC(0x1b)后接 c(0x63),没有 CSI 引导符也无参数。终端会执行类似断电重启的操作:清屏并(大多数终端)清空回滚、重置所有 SGR 属性和颜色、退出备用屏幕、重置 DEC 私有模式(自动换行打开、光标可见、鼠标关闭、括号粘贴关闭)、重置字符集,并将光标归位。reset(1) 和 tput reset 最终发送的就是它。当 TUI 崩溃使终端不可用时,可作为最后手段;但在多数现代终端中它也会清空回滚,而较温和的 \x1b[!p(DECSTR,软重置)不会。
规范出处: ECMA-48 §8.3.105 (RIS) / xterm-ctlseqs (ESC c)
示例
printf '\033c' # full reset; same as tput resetimport sys; sys.stdout.write('\x1bc')fmt.Print("\x1bc")process.stdout.write('\x1bc')printf("\x1bc");常见问题
针对这条序列,开发者真正会去搜索的问题的简短回答。
- 什么时候该用 RIS(
\x1bc)而不是 DECSTR(\x1b[!p)或clear? - RIS 只作为终端状态损坏时的最后手段——它清屏 *与* 回滚、重置所有 SGR、所有 DEC 私有模式、Tab 位、字符集、以及多数终端的调色板。DECSTR 在保留用户屏幕与回滚的前提下撤销 TUI 的模式 + SGR 改动——是「重置默认值但不丢历史」的精准选项。
clear(展开为\x1b[H\x1b[2J\x1b[3J)满足日常「擦掉可见内容」需求,不动 SGR 与模式。
终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |