I'm using chez-scheme and I can't find a way to clear the screen completely. (If someone knows a better way than printing I'd be interested in that too but it's not my question here)
From what I can find clearing the screen by ^L (control-L) or giving the clear
command (in bash at least) is equivalent to outputting ASCII character 12: Form feed
.
However, printing this does nothing. If I use (display (integer->char 12))
it just prints a newline
. Another way to encode this character is \f
(analogous to \n
for newline
), but in Python print("\f")
as well as in Scheme (display "\f")
is just a newline
.
Is my understanding of the meaning of ASCII 12 just wrong, or are implementations lacking?
Is there any way to clear the screen that should work across languages, analogous to \n
for a newline
?
4. Ctrl+L. This shortcut is equivalent to the clear command. It clears your terminal screen.
In an interactive shell/terminal, we can simply use ctrl+l to clear the screen.
print! ("\x1B[2J\x1B[1;1H"); This will clear the screen and put the cursor at first row & first col of the screen.
cls() like clrscr() ,system(“clear”) we use system. cls() function to clear console screen .
If you want to clear the screen, the "ANSI" sequence in a printf
\033[2J
clears the entire screen, e.g.,
printf '\033[2J'
The command-line clear
program uses this, along with moving the cursor to the "home" position, again an "ANSI" sequence:
\033[H
The program gets the information from the terminal database. For example, for TERM=vt100
, it might see this (using \E
as \033
):
clear=\E[H\E[J$<50>
(the $<50>
indicates padding needed for real VT100s). You might notice that the 2
is absent from this string. That is because the cursor is first moved to the home (upper left) position, and the 2
(entire screen) is not necessary. Eliminating that from the string made VT100s a little faster.
On the other hand, if you just want to reset the terminal, you can use the VT100-style RIS
:
\033c
but that has side-effects, besides not being in ECMA-48. These bug reports were for side-effects of \033c
:
Further reading:
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).
You can print \033c
which resets the terminal:
petite -q <<< '(display "\033c")'
\033
is escape and c
is literal c.
I can't give you any information about how widely this is supported.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With