Wys*_*ard 10 terminal scheme ascii
我正在使用chez-scheme,我找不到完全清除屏幕的方法.(如果有人知道比打印更好的方式我也会对此感兴趣,但这不是我的问题)
从我可以找到通过^ L(control-L)清除屏幕或给出clear命令(至少在bash中)相当于输出ASCII字符12 : Form feed. 但是,打印这没什么.如果我使用(display (integer->char 12))它只打印一个newline.编码这个角色的另一种方法是\f(类似于\nfor newline),但是在Python print("\f")和Scheme (display "\f")中只是一个newline.
我对ASCII 12的含义的理解是错误的,还是缺乏实现?
有没有什么办法来清除应该跨语言工作的屏幕,类似于\n一个newline?
Tho*_*key 31
如果要清除屏幕,请在"ANSI"序列中清除printf
\033[2J
Run Code Online (Sandbox Code Playgroud)
清除整个屏幕,例如,
printf '\033[2J'
Run Code Online (Sandbox Code Playgroud)
命令行clear程序使用它,同时将光标移动到"home"位置,再次是"ANSI"序列:
\033[H
Run Code Online (Sandbox Code Playgroud)
该程序从终端数据库获取信息.例如,for TERM=vt100,它可能会看到这个(使用\Eas \033):
clear=\E[H\E[J$<50>
Run Code Online (Sandbox Code Playgroud)
($<50>表示真正的VT100所需的填充).你可能会注意到2这个字符串中没有.这是因为光标首先移动到原位(左上)位置,并且2(整个屏幕)不是必需的.从字符串中消除使VT100s 更快一点.
另一方面,如果您只想重置终端,可以使用VT100风格RIS:
\033c
Run Code Online (Sandbox Code Playgroud)
但这有副作用,除了不在ECMA-48之外.这些错误报告对副作用的\033c:
进一步阅读:
CSI Ps J Erase in Display (ED).
Ps = 0 -> Erase Below (default).
Ps = 1 -> Erase Above.
Ps = 2 -> Erase All.
Ps = 3 -> Erase Saved Lines (xterm).
您可以打印\033c重置终端:
petite -q <<< '(display "\033c")'
Run Code Online (Sandbox Code Playgroud)
\033是逃避,c是文字c.
我无法向您提供有关支持广泛程度的任何信息.
| 归档时间: |
|
| 查看次数: |
19375 次 |
| 最近记录: |