跳到主要内容
ansicode

SU / SD — 向上 / 向下滚动

将屏幕内容向上(SU)或向下(SD)滚动 N 行,光标位置不变。

字节形式

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

\\x1b[\x1b[NS (scroll up) \x1b[NT (scroll down)
\\033[\033[1S / \033[1T
\\e[\e[1S / \e[1T
ESC [ESC [ N S / T
hex1b 5b <N> 53 / 54

说明

末字节 `S` = SU(Scroll Up)、`T` = SD(Scroll Down)。两者将滚动区域内容按 N 行(省略时默认 1)平移,并以空行填补暴露出的行;光标位置不变。SU `\x1b[1S` 会让顶行消失,底部出现一行空白 —— 与新文本自动滚屏的方向相反。受滚动区域语义影响:若已通过 DECSTBM(`\x1b[t;b r`)限定区域,则只滚动该区域内的行。

规范出处: ECMA-48 §8.3.147 (SU) / §8.3.113 (SD)

参数

S向上滚动 N 行
T向下滚动 N 行

示例

bash
printf 'top\nmid\nbot\033[2S'   # scroll region up 2
python
import sys; sys.stdout.write('\x1b[1S')
go
fmt.Print("\x1b[1S")
javascript
process.stdout.write('\x1b[1S')
c
printf("\x1b[1S");

终端支持

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

相关序列

在家族食谱中

CSI 食谱 · 5. 边距与滚动区 —— DECSTBM `r` 与 DECSLRM `s`