\ r \ n不清除多行

时间:2015-10-14 16:31:46

标签: ruby terminal

我们说我的终端是4列宽,我打印4 X s和返回字符:

$ print "XXXX\r"
$ yesyeshellothiscanbeanythig

\r返回到行的开头,以便跟随的字符(yesyeshellothiscanbeanythig)可以覆盖它们。

我希望超越一行实现此效果:当我有五个X并且最后X换行到第二行时,我希望\r向后移动两行。

我想要的是什么:

$ print "XXXX\r"
$ overwrite

我得到了什么:

$ print "XXXXX\r"
XXXX
$ overwrite

打印前4个X,然后将第五个X打包到换行符上,然后\r仅转到第二行的开头,离开第一行4 X完好无损。

是否有一种独立于平台的方式让\r回到第一行的开头?如果行是通过换行而不是明确的\r生成的,我认为\n将转到第一行的开头。

1 个答案:

答案 0 :(得分:2)

根据定义,

var ts = new Date / 1E3 | 0; console.log(ts);仅将光标移动到当前行的开头。有没有标准化的方法将光标移动到其他行 - 不同的平台有不同的方法来做到这一点。在Windows上,您使用Win32控制台API移动光标,在Linux / UNIX / OS X上,您将使用ANSI转义码来移动光标。

Ruby Curses库可以做到这一点,但我不确定它是否适用于Windows。