我尝试重置提示符,忘记所有变量,从第1行开始提示符〉
我知道以下内置函数
f(). %% forget all
io:format("\e[H\e[J"). %% "clear screen" and moving cursor to the begin of the line
但它不会“重置”屏幕,只是清除屏幕,就像终端中的clear
命令一样。
在Linux中,我只需键入reset
,但我找不到与之等效命令或内置函数来让Erlang执行此操作。
我还尝试了io:format(os:cmd("reset")).
,但收到错误。
我现在的解决方案是退出Erlang终端,然后重新打开它,但我相信有更简单的方法来完成这一任务。
5条答案
按热度按时间yhxst69z1#
清除erl shell
io:format(os:cmd(clear)).
b09cbbtk2#
一个有点“棘手”的方法是通过按ctrl-g,然后按
s
,c
来启动一个新的shell当然,这并不能清除屏幕,你必须使用你自己的控制台机制(我在OSX上使用iTerm,我只是点击
cmd-k
)cdmah0mi3#
你在类Unix系统上使用的大多数终端都支持VT100硬件复位转义序列,你可以在程序中使用它,如下所示:
这是 * 而不是 *
虽然两者都做不会有什么坏处。而且,它不会影响变量,所以您仍然可以
结合以下内容:
应该是你想要的。
jtjikinw4#
正如@ BrujoBenavides前面提到的,方法是退出当前的erl shell并启动一个新的,你可以使用
halt().
函数,它不太复杂。3pmvbmvn5#
或者执行更彻底的清除。这将清除终端的缓冲区:
相当于以下任一shell命令:
第一次
后者要求您安装了
ncurses
。