【发布时间】:2012-03-11 08:59:20
【问题描述】:
我想知道如何在 shell 中创建“全屏”窗口的外观,如在 vim、emacs 等中。是否可以在 Ruby 中以编程方式执行此操作?以及这将如何依赖于平台?
编辑:我不是在寻找如何让我的 shell 全屏显示。我正在寻找一种方法来隐藏以前输入的命令并用应用程序“填充”外壳屏幕。这是给安装程序的。
【问题讨论】:
标签: ruby bash shell terminal fullscreen
我想知道如何在 shell 中创建“全屏”窗口的外观,如在 vim、emacs 等中。是否可以在 Ruby 中以编程方式执行此操作?以及这将如何依赖于平台?
编辑:我不是在寻找如何让我的 shell 全屏显示。我正在寻找一种方法来隐藏以前输入的命令并用应用程序“填充”外壳屏幕。这是给安装程序的。
【问题讨论】:
标签: ruby bash shell terminal fullscreen
您可能正在寻找ncurses 或S-Lang 支持,以提供您完整的TUI 体验。
Ruby 的 gem 环境提供了一些值得探索的宝石:
$ gem list --remote | grep -i curses
cursesx (003)
ffi-ncurses (0.4.0)
ncurses (0.9.1)
ncurses-ruby (1.2.1)
ncursesw (1.2.4.3)
snowleopard-ncurses (1.2.4)
rbcurse 包的作者建议使用ncurses-ruby gem。 rbcurse 提供了一些预先编写的小部件以及以相同样式编写新小部件的能力——它看起来非常有用。
我还没有找到任何用于 Ruby 的 S-Lang 绑定;基于该项目专注于提供语言解释器,我只是认为构建 Ruby 绑定并不容易。可惜,因为许多应用程序作者确实更喜欢 S-Lang 而不是 ncurses。
【讨论】:
你可以使用ncurses 来处理类似的事情。它为您的终端提供了一个抽象层。
【讨论】:
虽然有更多的跨平台和优雅的解决方案,但以下适用于 Linux,并且应该也适用于其他 Unix:
system("clear")
如果您在 Windows 上,这可能有效(未经测试):
system("cls")
如果您想制作一个可以更新其界面的应用程序,您可以维护某种字符数组:
colArr=[]
columNum.each {colArr<<[]}
#fill colArr
system("clear")
print colArr
#Every time you change it, call system("clear") then print colArr
这是相当手动的,但它适用于简单的 TUI。
【讨论】:
尝试按“F11”键..或者您可以转到首选项>显示设置 我只是找到一个讨论这个的线程..尝试去here
【讨论】: