使命令行程序“全屏”

发布于 2025-01-07 20:37:52 字数 161 浏览 1 评论 0 原文

我想知道如何在 shell 中创建“全屏”窗口的外观,如 vim、emacs 等。是否可以在 Ruby 中以编程方式执行此操作?这对平台的依赖性有多大?

编辑:我不是在寻找如何使我的 shell 全屏显示。我正在寻找一种方法来隐藏以前输入的命令并用应用程序“填充”外壳屏幕。这是给安装人员的。

I am wondering how to create the appearance of a "full-screen" window inside a shell, as in vim, emacs, etc. Is it possible to do this programmatically in Ruby? And how platform-dependent would that be?

Edit: I am not looking for how to make my shell go full-screen. I'm looking for a way to hide the previous commands entered and "fill" the shell screen with an app. It's for an installer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

要走干脆点 2025-01-14 20:37:52

您可能正在寻找的是 ncursesS-Lang 支持,为您提供完整的TUI 体验。

Ruby 的 gem 环境提供了一些可能值得探索的 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。

What you're probably looking for is ncurses or S-Lang support to provide your full TUI experience.

Ruby's gem environment provides several gems that might be worth exploring:

$ 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)

The author of the rbcurse package recommends using the ncurses-ruby gem. rbcurse provides some pre-written widgets and the ability to write new widgets in the same style -- it looks mighty useful.

I haven't yet found any S-Lang bindings for Ruby; based on the project's focus on providing a language interpreter, I just don't think it'll be easy to build Ruby bindings. Pity, because many application authors do prefer S-Lang over ncurses.

擦肩而过的背影 2025-01-14 20:37:52

您可以使用 ncurses 来完成类似的事情。它为您的终端提供了一个抽象层。

You could use ncurses for things like that. It provides an abstraction layer to your terminal.

烟雨凡馨 2025-01-14 20:37:52

尽管有更多跨平台和优雅的解决方案,但以下内容适用于 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。

Although there are many more cross platform and elegant soulution, the following works on Linux, and should work on other Unixes too:

system("clear")

If you are on Windows, this may work (untested):

system("cls")

If you want to make an application that can update its interface, you can maintain some sort of array of chars:

colArr=[]
columNum.each {colArr<<[]}
#fill colArr
system("clear")
print colArr
#Every time you change it, call system("clear") then print colArr

This is pretty manual, but it works for simple TUIs.

无所谓啦 2025-01-14 20:37:52

尝试按“F11”键..或者您可以转到首选项>显示设置
我刚刚找到一个讨论这个的帖子..尝试去这里

try to press "F11" key..or you can go to preferences > display setting
I just find a thread that talking about this..try to go here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文