跳到主要内容
ansicode

REP — 重复前一个字符(CSI Pn b)

把上一字符重复打印 N 次 —— 节省同字符长串带宽的小窍门。

字节形式

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

\\x1b[\x1b[Pnb
\\033[\033[Pnb
\\e[\e[Pnb
ESC [ESC [ Pn b
hex1b 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)

示例

bash
# 80-char horizontal rule with minimal bytes:\nprintf '\xe2\x94\x80\033[79b\n'
python
import sys; sys.stdout.write('-\x1b[79b\n')   # 80 dashes
go
fmt.Print("-\x1b[79b\n")
javascript
process.stdout.write('-\x1b[79b\n')
c
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
不支持

相关序列