【发布时间】:2015-08-06 02:32:55
【问题描述】:
我正在尝试让我的命令行游戏在bash:
中进入自己的会话(我不知道名字是什么,但看起来像这样)
我的第一次尝试是这样的:
为了完成上述操作,我使用:system('clear')
和转义键\r\e 重写光标当前位置上方的行:print "\r\e[#{lines}A"
我想要的是当命令行应用程序退出时,终端恢复到之前的状态,就好像什么都没发生一样,就像使用nano、less和许多其他命令行工具一样。
如何使用 ruby 让命令行应用程序做到这一点?
【问题讨论】:
-
我怀疑
nano或less是用Ruby 编写的,它们可能使用的是低级终端函数。看看 Ruby 中的 curses 库。 Curses 是一个来自编写vi编辑器的包,它(以及后来的 ncurses)是一个 C 库:ruby-doc.org/stdlib-2.0.0/libdoc/curses/rdoc/Curses.html -
在您使用的任何 GUI 中创建一个新窗口,在其中运行游戏,然后在退出时关闭窗口可能会更简单。问题是你想撤消
clear命令,而且你不能不使用窗口系统。 -
我会看看
curses。谢谢。
标签: ruby bash command-line gem