执行ruby时更改终端大小

执行ruby时更改终端大小,ruby,terminal,Ruby,Terminal,从命令行执行程序时,是否有方法更改终端窗口的大小?我尝试使用IO#winsize=但它似乎没有任何作用 窗口操作有以下几种方法: CSI-Ps;附言Ps t 窗口操作(来自dtterm和扩展)。 可以使用AllowIndowOps禁用这些控件 资源。第一个(和任何附加)的有效值 参数)包括: Ps=1->取消图标化窗口。 Ps=2->图标化窗口。 Ps=3;x;y->将窗口移动到[x,y]。 Ps=4;高度;宽度->将xterm窗口调整为 高度和宽度(以像素为单位)。 Ps=5->将xterm窗

从命令行执行程序时,是否有方法更改终端窗口的大小?我尝试使用IO#winsize=但它似乎没有任何作用

窗口操作有以下几种方法:

CSI-Ps;附言Ps t
窗口操作(来自dtterm和扩展)。
可以使用AllowIndowOps禁用这些控件
资源。第一个(和任何附加)的有效值
参数)包括:
Ps=1->取消图标化窗口。
Ps=2->图标化窗口。
Ps=3;x;y->将窗口移动到[x,y]。
Ps=4;高度;宽度->将xterm窗口调整为
高度和宽度(以像素为单位)。
Ps=5->将xterm窗口提升到堆栈的前面-
定单。
Ps=6->将xterm窗口降低到屏幕底部
堆叠顺序。
Ps=7->刷新xterm窗口。
Ps=8;高度;宽度->将文本区域调整为
[高度;宽度]以字符为单位。
Ps=9;0->还原最大化窗口。
Ps=9;1->最大化窗口(即根据屏幕大小调整大小
尺寸)。
Ps=1->报告xterm窗口状态。如果打开xterm窗口
如果打开(非图标化),则返回CSI 1T。如果xterm
窗口被图标化,它返回CSI 2T。
Ps=13->将xterm窗口位置报告为CSI 3;x;yt
Ps=1 4->以像素为单位报告xterm窗口为CSI 4;
高度;宽度t
Ps=1 8->以字符报告文本区域的大小
作为CSI 8;高度;宽度t
Ps=1 9->以字符形式报告屏幕大小,如下所示
CSI 9;高度;宽度t
Ps=2 0->将xterm窗口的图标标签报告为OSC L
标签街
Ps=2 1->将xterm窗口的标题报告为OSC l title ST
Ps>=2 4->调整到Ps行大小(DECSLPP)
要从Ruby调用它们,可以使用:(
“\e[”
是CSI的代码)


只有当您的终端支持控制序列时,这才有效。

这样做完全不尊重用户设置。如果某个程序认为它更了解我的终端的大小,我会非常恼火。哪种操作系统?@SergioTulentsev在一般情况下,我与您分享您的感受,但有一些例子表明它会e好的。可能应用程序是应用户的请求更改终端设置的。例如,用户点击一个键,在常规和“大”(如半屏幕)大小之间切换应用程序的终端。可能应用程序是一个异常交互的应用程序,如一个游戏,其中移动和调整一个(或多个!)终端是游戏的一部分。(续)…我刚刚记起来:Vim本身属于这一类:如果你:设置lines=X,那么它会根据用户的请求调整终端的大小。我尝试使用这些退出命令,但它们似乎不起作用。我以前使用过转义码来更改前景色和背景色,但它们似乎无法调整大小。你知道为什么会这样吗e?OSX Terminal.app支持窗口大小控制序列(通过运行
resize-s4080
检查,它发送特定字符串)。当然,它是一个实用程序(不是Ruby)。
print "\e[8;40;80t" # resizes terminal window to 40x80 characters