REP — 重复前一个字符(CSI Pn b)
把上一字符重复打印 N 次 —— 节省同字符长串带宽的小窍门。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[Pnb\\033[
\033[Pnb\\e[
\e[PnbESC [
ESC [ Pn bhex
1b 5b <Pn> 62说明
Repeat Preceding Character。末字节 `b`(0x62)—— 把最近一个图形字符(即更新过终端显示的字符,不计控制码与空白)再打印 `Pn` 次(默认 1)。若上一字节是控制码或尚无字符,REP 为空操作。在窄 SSH 链路下很有用:画一条 80 个 `─` 的横线,直接写需要 80 个多字节 UTF-8(160–240 字节);写成 `─\x1b[79b` 仅 5 字节字符 + 4 字节控制码 = 9 字节。xterm(自 X11R5)、kitty、wezterm、ghostty、alacritty、mintty、foot 都支持;Windows Terminal 1.18+ 添加支持;iTerm2 不支持。发送装饰性方框字符或进度条填充的程序可在使用前用 XTGETTCAP 探测 `rep` 能力。terminfo 能力名为 `rep`。
规范出处: ECMA-48 §8.3.103 (REP)
示例
# 80-char horizontal rule with minimal bytes:\nprintf '\xe2\x94\x80\033[79b\n'import sys; sys.stdout.write('-\x1b[79b\n') # 80 dashesfmt.Print("-\x1b[79b\n")process.stdout.write('-\x1b[79b\n')printf("-\x1b[79b\n");终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 不支持 | 不支持 |