9

假设我有一个 Emacs 窗口(即 Emacs 称为帧的细分)运行一个像素宽的M-x ansi-term缓冲区(例如 running zsh) 。~500然后我运行几个 shell 命令,输出被包装以适合这些500像素。

假设我现在使这个窗口或缓冲区更宽(例如1000像素),可能是因为我杀死了框架中的其他窗口,从而为我的ansi-term窗口提供了更多空间。

有没有办法让我的ansi-term窗口中的旧输出调整大小以利用新的窗口大小?(即使线条更宽并根据新窗口大小重新包装它们)?

4

1 回答 1

4

不,通常不会,因为生成输出的程序(可能已经)格式化了自身以适应打印时有效的显示宽度,并且在调整大小时不再运行。

但是,如果它仍在运行,它将获得调整自身大小的选项(a SIGWINCH)。您可以使用例如links/elinks浏览器对此进行测试。这是 ANSI 终端模式的真正“用例”:使用“curses”或类似系统来移动光标的程序。

正如@user2491 指出的那样,shell-mode确实使用自动换行处理基于文本(基于流)的输出,但代价是无法运行“诅咒”类型的程序。它旨在让您的会话更像是一个文本文件,而不是“真正的终端”。</p>

于 2012-10-16T18:55:23.690 回答