一尘不染

您如何在终端中编辑现有文本(并移动光标)?

node.js

我看到了这个演示,它打印出一段文本(就像您在键入时会得到的一样some-command --help),然后 在终端中已经打印出 该文本
后,它又 跳回到文本中的几个关键字并更改了文本颜色。。

在我看来,这太疯狂了。他们是怎么做到的?

开始去想它,我想stdoutstdin在技术上的“IO流”,所以也许这是一个跟踪光标的位置的持久变量?我记得在构建语言解析器时做了类似的事情。

目标是这样的:说您在控制台中键入以下内容,它会输出一个空白数组,因为在Node.js中,它们都是异步的,我们不想每次都在控制台中编写异步函数:

$ node app.js
> App.User.all()
=> []

然后在执行异步回调时,返回并编辑,=> []以包含结果:

$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]

即使至少还有很多其他问题需要解决(与这个问题无关,我也知道可以定义一个全局回调并执行类似的操作App.User.all(_c)),至少知道如何实现还是很棒的。

终端输出已打印后,如何编辑?


阅读 225

收藏
2020-07-07

共1个答案

一尘不染

终于发现“演示”:

2020-07-07