如何在 Ruby 终端上编写带有窗口的控制台应用程序?
我想用 Ruby 为终端编写一个简单的聊天客户端。 问题是,我需要两个单独的“窗口”,一个用于聊天日志,另一个用于输入提示。 我不知道如何做到这一点。 我看了 (n)curses 和其他一些 ruby-libs,但没有任何东西给我这个功能。
.------------------------------. | Mike: Hi Jenny | | Jenny: Hi Mike, how are you? | |------------------------------| |> I am fine_ | `------------------------------'
最大的问题是,如果有新的线路到达,上框架应该滚动,但提示应该保持在其位置。 如果我在输入提示中写了一些内容,当用户按 ENTER 时,文本应该消失。
I want to write a simple chat-client in Ruby for the terminal.
The Problem is, that I need two separate "windows", one for the chatlog and another for the input prompt. I dont have a clue how to do this. I watched (n)curses and some other ruby-libs, but nothing gives me this functionality.
.------------------------------. | Mike: Hi Jenny | | Jenny: Hi Mike, how are you? | |------------------------------| |> I am fine_ | `------------------------------'
The big Problem is, if a new Line arives, the upper frame should scroll, but the prompt should stay on its position. And if I write something in the input prompt, the text should disappear when the user press ENTER.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嗯,ncurses(及其 ruby 绑定库)确实允许您这样做,因为所有相应的工具都带有
windows(1)
、talk(1)
和screen( 1)
是用ncurses编写的。 您可以拥有多个带有 (n)curses 的窗口。Well, ncurses (and its ruby binding library) does allow you for this since all the corresponding tools with
windows(1)
,talk(1)
andscreen(1)
are written with ncurses. You can have multiple windows with (n)curses.