ruby - 使用 ruby​​ 接管控制台输出

标签 ruby command-line

当我从控制台运行 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/

相关文章:

ruby-on-rails - 在 Rails 4 中保存嵌套模型

Ruby:使用 block 迭代器的方法链接如何工作?

c# - 在 C# 中多次运行 exe 命令的最快方法是什么?

ruby-on-rails - Ruby:如何返回数组列包含给定字符串的所有行?

ruby - Capistrano 中的执行、测试和捕获命令有什么区别?

ruby - 在 Ruby 中防止继承

node.js - 在使用electron-builder安装应用程序的同时,向用户环境添加命令行脚本

MySQL:如何在添加多列时不重复每列的column_definition

arrays - 如何将数组作为参数传递给 R 脚本命令行运行?

java - 使用 Runtime.getRuntime().exec(command) 时用户输入到命令行;