【发布时间】:2011-01-23 09:03:55
【问题描述】:
我有一个 ruby 脚本,它同时异步接收和显示来自服务器的消息,并允许用户在控制台上输入。当收到一条消息时,它当前正写在用户正在输入的内容的中间。输入本身没有乱码,但看起来很可怕。理想情况下,它将保存用户当前的输入,输出消息,然后在下一行恢复输入。我在 c 中通过拦截每个击键来做到这一点,但我只记得这是一个很大的麻烦。我对 ruby 还很陌生,所以我不确定是否有一个好的方法可以做到这一点,或者如何做到这一点。
例子:用户输入>abcde,消息hello进来,用户输入fgh。控制台现在将显示:
>abcdehellofgh
并且用户可以在最后继续输入。我希望它显示:
hello
>abcdefgh
【问题讨论】:
-
你能接受使用 ncurses 库的解决方案吗?
-
当然。我不熟悉那个包,但我愿意看一个例子。
-
更深入地查看 ncurses,它确实看起来像我需要的,我只是不知道如何实现这一点。该库非常复杂,并且没有很好地记录 ruby 绑定。