⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 06 - determining terminal size.rb

📁 O Reilly Ruby Cookbook source code
💻 RB
字号:
Curses.program do |scr|  max_y, max_x = scr.maxy, scr.maxx  scr.setpos(0, 0)  scr.addstr("Your terminal size is #{max_x}x#{max_y}. Press any key to exit.")  scr.getchend#---Ncurses.program do |scr|  max_y, max_x = [], []  scr.getmaxyx(max_y, max_x)  max_y, max_x = max_y[0], max_x[0]  str = "Your terminal size is #{max_x}x#{max_y}. Press any key to exit."  scr.mvaddstr(0, 0, str)  scr.getchend#---TIOCGWINSZ = 0x5413                 # For an Intel processor# TIOCGWINSZ = 0x40087468           # For a PowerPC processordef terminal_size   rows, cols = 25, 80  buf = [ 0, 0, 0, 0 ].pack("SSSS")  if STDOUT.ioctl(TIOCGWINSZ, buf) >= 0 then    rows, cols, row_pixels, col_pixels = buf.unpack("SSSS")[0..1]  end  return rows, colsendterminal_size                            # => [21, 80]#---STDOUT_HANDLE = 0xFFFFFFF5def terminal_size  m_GetStdHandle = Win32API.new('kernel32', 'GetStdHandle', ['L'], 'L')  m_GetConsoleScreenBufferInfo = Win32API.new ('kernel32',                                                'GetConsoleScreenBufferInfo',                                                ['L', 'P'], 'L' )  format = 'SSSSSssssSS'  buf = ([0] * format.size).pack(format)  stdout_handle = m_GetStdHandle.call(STDOUT_HANDLE)  m_GetConsoleScreenBufferInfo.call(stdout_handle, buf)  (bufx, bufy, curx, cury, wattr,    left, top, right, bottom, maxx, maxy) = buf.unpack(format)  return bottom - top + 1, right - left + 1endterminal_size                          # => [25, 80]#---def terminal_size  %x{stty size}.split.collect { |x| x.to_i }endterminal_size                          # => [21, 80]#---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -