跳到主要内容
ansicode

SGR 5 — 闪烁(慢速)

使后续文本闪烁(≤ 150 次/分钟)。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[5m
\\033[\033[5m
\\e[\e[5m
ESC [ESC [ 5 m
hex1b 5b 35 6d

实时预览

在浏览器中通过与解码器相同的分词器渲染 —— 无需打开终端。

闪烁文本

说明

ECMA-48 §8.3.117 把 SGR 5 定义为「slow blink」—— 每分钟最多 150 次切换 —— 把 SGR 6 定义为「rapid blink」(> 150 次/分钟)。字节序列为 \x1b[5m。几乎没有现代模拟器分别实现这两种速率;xterm 明确把 SGR 6 折叠到 SGR 5,多数其他终端干脆忽略 SGR 6,因此跨终端的「闪烁」库实际发的都是慢闪 escape。视觉效果是终端按实现定义的速率(通常 0.5–1 Hz)在字符单元前景色与背景色之间交替;底层字节稳定,所以文本仍可选中、可复制、且对读屏可读。配对关闭码是 SGR 25(\x1b[25m)—— 精准,不动前景 / 背景 / 加粗 / 斜体 / 下划线。

支持差异更多源于*策略*而非能力。xterm、iTerm2、kitty、wezterm、gnome-terminal、Konsole 与 Ghostty 真正让单元格闪烁。Apple Terminal.app 刻意不动画(「闪烁与 Mac UI 设计理念相悖」)—— 属性被解析但渲染与非闪烁相同。alacritty 历史上出于 UX 立场拒绝动画;当前构建(2024+)接受属性但静态渲染。Linux console / fbcon 实现闪烁,但速率锁定到硬件光标闪烁频率。Windows Terminal 与大多数 Linux GUI 终端都提供「不闪烁文本」偏好以全局抑制 SGR 5 —— 启用该选项的用户(出于无障碍考虑非常常见)永远看不到你的闪烁。更要紧的是 WCAG 2.x 指南 2.3.1,限制任何闪烁内容不超过 3 Hz 以避免诱发癫痫;SGR 5 实现都低于该阈值,但来自光敏癫痫和前庭敏感用户的投诉仍反复出现。读屏完全忽略该属性 —— screen-readers 这条 pitfall 同样适用,因为辅助软件无法渲染运动。

使用 SGR 25(\x1b[25m)关闭。硬规则:绝不要单独用闪烁作为任何对用户有意义的信号载体。按 color-only-signal 同步搭配显式颜色、图标或文本标签 —— 一个没有「[!]」/「[error]」前缀的闪烁单词,对全局禁用闪烁的用户、Apple Terminal.app 用户、alacritty 用户或读屏用户都什么也没传达。terminfo cap 是 blinktput blink / 关闭用 tput sgr0,因为没有精准的 rmblink);许多现代 terminfo 条目即使模拟器忽略闪烁仍把 blink 留作非空,因此基于 terminfo 的能力探测并不可靠。相关:sgr-reset(SGR 0 —— 完整重置)、sgr-reverse(SGR 7 —— 一个支持普遍得多的吸引注意属性)、sgr-hidden(SGR 8 —— 相邻的可见性属性)。

规范出处: ECMA-48 §8.3.117 (SGR parameter 5)

示例

bash
printf '\033[5mblink\033[25m steady\033[0m\n'
python
print('\x1b[5mblink\x1b[0m')
go
fmt.Print("\x1b[5mblink\x1b[0m")
javascript
console.log('\x1b[5mblink\x1b[0m')
c
printf("\x1b[5mblink\x1b[0m\n");

常见问题

针对这条序列,开发者真正会去搜索的问题的简短回答。

2026 年还有终端真的在渲染闪烁吗?
有,但不一致。xterm、urxvt、Linux console / fbcon、gnome-terminal(VTE)、konsole、macOS Terminal.app 仍会闪。kitty、alacritty、wezterm、ghostty 把文本渲染为静态——现代栈的共识是闪烁会带来无障碍 / 偏头痛问题。永远不要靠闪烁传达关键信息;把它当成装饰,并接受在读者实际使用的近一半终端上完全不可见。
怎样关闭闪烁文本——按字节流和按终端两种方式?
字节流里发 \x1b[25m 单独关闭闪烁、不影响字重和颜色(或 \x1b[0m 全部重置)。按终端:iTerm2 *Profiles → Text → Blinking text*;gnome-terminal *偏好 → 配置 → 文本 → 允许文本闪烁*;konsole *设置 → 配置 → 高级 → 启用闪烁文本*;xterm 查 X 资源 cursorBlink。ConPTY 即使宿主终端能闪也不闪。

终端支持

xterm
支持
Linux console (fbcon)
支持
macOS Terminal.app
不支持
iTerm2
支持
Windows Terminal
部分
cmd.exe / ConPTY
不支持
kitty
支持
alacritty
部分
WezTerm
支持
Ghostty
支持
GNOME Terminal
支持
Konsole
支持
tmux
支持
GNU screen
支持

相关序列