当我从控制台运行 vim 或 top 时,它们能够接管整个控制台的渲染。当我退出时,我会返回到控制台。
是否可以从 ruby 做到这一点?作为一个简单的示例,我将如何执行以下操作
# Rakefile
task :clock do
loop do
console.render Time.now
sleep 1
end
end
当我运行它时,控制台将被清除,第一行将显示时间。当我退出时,我会像运行 rake clock 之前一样继续控制台 session 。
更新
检查了 tictactoe example对于 ruby curses,这里是时钟示例的实现。我在随机行上显示了时钟以演示刷新整个控制台。
#!/usr/bin/env ruby
require 'curses'
loop do
Curses.clear
Curses.setpos(rand * 10, 0)
Curses.addstr(Time.now.to_s);
Curses.refresh
sleep 1
end
最佳答案
您正在寻找 Ruby curses 库,它可以让您完全控制屏幕:定位、颜色等。
这不是一个很好的文档库,但在 Stackoverflow 上搜索“[ruby] curses”将为您提供示例链接。
关于ruby - 使用 ruby 接管控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011778/