当我从控制台运行vim或top时,他们可以接管渲染整个控制台.当我退出时,我就回到了控制台.
是否有可能从红宝石这样做?举个简单的例子,我该如何做
# Rakefile
task :clock do
loop do
console.render Time.now
sleep 1
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行它时,控制台将被清除,第一行将显示时间.当我退出时,我会继续执行控制台会话,就像我运行rake clock之前一样.
检查了ruby curses 的tictactoe示例,这是时钟示例的实现.我已经在随机线上显示时钟,以演示整个控制台的刷新.
#!/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
Run Code Online (Sandbox Code Playgroud)
您正在寻找Ruby curses库,它可以让您完全控制屏幕:定位,颜色和c.
它不是一个很好的文档库,但Stackoverflow搜索"[ruby] curses"将为您提供示例链接.