【问题标题】:JQuery Terminal: How to echo without line breakJQuery 终端:如何在不换行的情况下回显
【发布时间】:2019-07-31 11:15:58
【问题描述】:

是否可以在不引起换行符的情况下回显?例如,假设我想让三个点一个接一个出现一秒:

this.echo(".");
await sleep(1000);
this.echo(".");
await sleep(1000);
this.echo(".");

目前显示为:

.
.
.

但是我需要它显示为:

...

【问题讨论】:

  • 这不可能开箱即用,有 hack(非常 hacky)允许在没有换行符的情况下进行 echo(在示例中)但是如果你真的必须使用它,它不是很好的代码.用户多次问过这个问题,答案是它的基本架构更改,因为我不想在库中出现这种黑客攻击。

标签: jquery-terminal


【解决方案1】:

对于版本2.8.0,您可以使用:

<script src="https://unpkg.com/jquery.terminal@2.8.0/js/echo_newline.js"></script>

它将为 echo 添加新选项(脚本是对 echo 的猴子补丁,但它比示例中的要好一点,并且它具有单元测试覆盖率)。

this.echo(".", {newline: false});
await sleep(1000);
this.echo(".", {newline: false});
await sleep(1000);
this.echo(".", {newline: false});

那么如果你输入命令“foo”你会:

...> foo
> |

如果您使用换行符回显点(默认为 true),您将拥有:

....
> |

你甚至可以使用:

term.echo('hello ', {newline: false});
term.echo('foo\n', {newline: false});

在未来的版本中,我可能会为整个终端引入选项换行符,这样您将始终需要为具有此选项的终端添加 \n(但您仍然需要该 echo_newline.js 文件)。

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多