如何使长文本块一次显示一个屏幕?

时间:2016-09-07 04:39:24

标签: ruby

就像手册页提示你的--more--一样 - 有没有办法在Ruby中做到这一点?

也许是“pretty_print”或“awesome_print”的东西?或者它是否涉及获取有关终端窗口大小的信息,la:https://gist.github.com/acook/4190037

# via http://www.megasolutions.net/ruby/Getting-the-size-of-the-terminal-in-a-portable-way-26006.aspx
TIOCGWINSZ = 0x40087468 

def get_winsize
  str = [0, 0, 0, 0].pack('SSSS') 
  if STDIN.ioctl(TIOCGWINSZ, str) >= 0 
    rows, cols, xpixels, ypixels = str.unpack("SSSS") 
    p rows, cols, xpixels, ypixels 
  else 
    puts "Unable to get window size" 
  end 
end

1 个答案:

答案 0 :(得分:1)

您是否期望在Ruby中需要某些东西,它通常已经实现IO#winsize

more

无论您使用的是* nix机器,我都会使用less / ▶ text = "very long text" ▶ system <<CMD ▷ echo '#{text.gsub("'", "’")}' | less ▷ CMD 命令执行此任务:

{{1}}