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

时间:2012-05-14 14:49:56

标签: node.js terminal stdout

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

这对我来说似乎很疯狂。他们是怎么做到的?

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

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

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

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

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

至少知道如何实现,即使有很多其他问题需要解决(与此问题无关。)我知道你可以定义一个全局回调并执行{{1}之类的操作。 })。

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

2 个答案:

答案 0 :(得分:42)

终于找到了“demo”:

答案 1 :(得分:0)

如果您在Mac OX X中工作,我相信Eddie程序会执行“在已经打印后编辑终端输出”之类的操作。 (参见“维基百科的Eddie(文本编辑)”)。

在文件菜单下,选择“新建”,然后在“设置/文档设置...”下选择“外壳窗口”。之后尝试几个unix命令:date,ls,cal等。然后放上光标并编辑它们。

我会尝试使用Node但我无法在Mac OS X 10.5.8下安装它(Node)。