调整 ipython 命令提示符的终端窗口大小

调整 ipython 命令提示符的终端窗口大小

我使用 OS X 终端(我知道,不是 Linux 或 Unix,但希望这与这里无关)进行许多操作,并且通常使用 nano 来快速编辑文件。在此过程中,我经常调整终端窗口的大小,并且 Nano 界面也会相应地调整大小以适应窗口。这很棒,让我可以更好地看到我的工作,并且是预期的行为。

然而,我也使用 ipython 在 python 中进行计算和开发,但是当我加载这个交互式 shell 时,它似乎会在当前终端窗口的边界处调整 shell 的宽度和高度,但如果调整窗口大小,则不会动态调整大小。

因此,如果我在 ipython 中使用像“!nano”这样的命令来启动 Nano 编辑器,它最初会加载并在当前窗口大小下看起来正确,但调整窗口大小会在 Nano 界面环绕或扩展时出现乱码。超出了 ipython shell 的明显范围。

这似乎是 ipython 与窗口边界或窗口中运行的 shell 交互方式的一些限制。我说不出来,希望有这方面经验的人能告诉我一种方法 (如果可能的话),让 ipython (或此处涉及的任何内容) 根据终端窗口正确调整自身大小。

这是它的外观的屏幕截图。窗口最初较大,因此我运行 ipython 来加载解释器,然后运行 ​​!nano 在 ipython 中启动 nano。然后我调整了窗口的大小,这就是结果。我希望(并希望找到一种方法)通过这种调整大小来保留纳米界面。这种情况只发生在 ipython 中,所以它显然是该环境中某个地方的限制。

在 ipython 中启动时 Nano 界面出现乱码

答案1

终端调整大小会生成一个SIGWINCH发送到前台应用程序的信号。所述应用程序应该捕获该信号(前提是它们首先关心终端尺寸),并进行相应调整。当您nano在运行时调整终端大小时,似乎发生的ipython情况是ipython接收SIGWINCH,但不会将其重新发送到nano。我认为对此您无能为力(除了将其作为错误报告给 IPython 开发人员)。

相关内容