可以使用终端命令调整终端窗口的大小吗?


38

这样我就可以在Terminal中将窗口调整为特定大小。

Answers:


58

是。终端支持用于处理窗口的转义序列,包括大小和位置,分层和最小化。尺寸可以像素或字符表示。有关详细信息,请参见Xterm控制序列(搜索“窗口操作”;如果您不熟悉该表示法,则“ CSI”代表“控制序列介绍者”,即ESC [)。

例如,此shell命令会将窗口设置为100x50个字符:

printf '\e[8;50;100t'

将窗口最小化几秒钟,然后将其还原:

printf '\e[2t' && sleep 3 && printf '\e[1t'

将窗口移至显示屏的左上角:

printf '\e[3;0;0t'

缩放窗口:

printf '\e[9;1t'

将窗口移到最前面(不改变键盘焦点):

printf '\e[5t'

在终端仿真器中启用控制序列

某些终端仿真器默认情况下会忽略这些控制序列,需要进行配置才能启用它们。

要在XTerm中启用它们,请将以下资源设置为true:

allowWindowOps

要在iTerm2中启用这些功能,请取消选择以下首选项:

首选项>配置文件> [配置文件]>终端>禁用会话启动的窗口大小调整


这太完美了!
LopSae 2012年

2
从现在开始,你是我的上帝!
d12

2
这似乎不适用于使用iterm2的优胜美地-Jistanidiot
2015年

这很好用,但似乎Terminal不接受将窗口仅部分在屏幕上可见的调整大小。我刚试过printf'\ e [8; 100; 100t“,但将其截断为79x100,正好适合。我的问题是,在这种情况下,我需要绕过鼠标,以扩大终端,使其超出屏幕限制...
phs 2015年

1
这也适用于iTerm2。
TextGeek

10

您可以始终使用AppleScript:

setwidth() { osascript -e "tell app \"Terminal\" to tell window 1
set b to bounds
set item 3 of b to (item 1 of b) + $1
set bounds to b
end"; }

这仅适用于当前活动的终端窗口/选项卡。为了可靠地工作,请获取当前的tty设备路径名,然后找到匹配的终端选项卡。
克里斯·佩奇


10

使用 /usr/X11/bin/resize

resize -s 30 80 将为您提供30行80列。

resize -s 30 0 将为您提供30行和整列。

resize -s 0 80 将为您提供完整的行和80列。


1
此解决方案不限于MacOS。它是基于终端的,因此它应该在所有终端上都可以工作。我用它来在运行带有TERM = xterm的bash shell的Windows上调整PuTTY窗口的大小。
DrStrangepork 2014年

4
在iterm2中,这似乎不适用于优胜美地。
Jistanidiot 2015年

这适用于Apple Terminal,但不适用于iTerm2。但是,发送转义序列\ e [8; 24; 80t都可以使用。
TextGeek

1
@KrishenGreenwell请参阅iTerm2文档。默认情况下,它忽略这些控制序列。有一个控制它们是否被忽略的偏好。
克里斯·佩奇

1
该解决方案曾经可以使用,但是我认为X11命令已经消失了。也许可以通过安装X11来安装它们,但是我不想仅安装X11来拥有resize命令。
加百利

-2

实际上,您知道,用鼠标移动调整大小的窗口非常慢。

我一直在使用这个应用程序SizeUp很长时间了。它基本上可以通过使用键盘命令来调整任何应用程序窗口的大小。

您可以执行以下操作(以下是我的自定义键盘命令):

  • 使窗口全屏显示(control+ option+ command+ m
  • 向左或向右移动窗口1/2屏幕大小(control+ option+ command+ /
  • 将1/4屏幕大小的窗口移动到任何角落(control+ option+ shift+ / / /
  • 在屏幕之间移动窗口
  • 在空间之间移动窗口

我认为这可能会解决问题,并有助于其他窗口管理。


尽管有用,但这不能解决发问者提出的问题。
安德鲁·费里尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.