如何从ruby程序中确定控制台字符宽度?

时间:2010-02-28 19:08:27

标签: ruby unix terminal

我想从ruby程序中打印柱状输出,但为了充分利用可用的屏幕空间,我需要确定程序运行的终端的字符宽度。如何做到这一点?< / p>

1 个答案:

答案 0 :(得分:0)

HighLine gem使用此函数查找终端的尺寸:

  # A Windows savvy method to fetch the console columns, and rows.
  def terminal_size
    stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE)

    bufx, bufy, curx, cury, wattr, left, top, right, bottom, maxx, maxy =
    GetConsoleScreenBufferInfo(stdout_handle)
    return right - left + 1, bottom - top + 1
  end

此方法也适用于Windows,如果您使用Linux(或类似的东西),那么您可以使用stty size更轻松地使用以下内容查找维度:

def terminal_size
  `stty size`.split.map { |x| x.to_i }.reverse
end