假设我有一个Emacs窗口(即Emacs称之为框架的细分)运行M-x ansi-term
缓冲区(例如,运行zsh
),宽度为~500
像素。然后我运行几个shell命令,输出被包装以适合那些500
像素。
假设我现在使这个窗口或缓冲区更宽(例如1000
像素),可能是因为我杀死了帧中的其他窗口,为我的ansi-term
窗口提供了更多空间。
有没有办法让我的ansi-term
窗口中的旧输出调整大小以利用新的窗口大小? (即根据新窗口尺寸使线条更宽并重新包裹它们?)
答案 0 :(得分:4)
不,通常不会,因为生成输出的程序(可能有)将自身格式化为适合打印时生效的显示宽度,并且在调整大小时不再运行。
但是,如果 仍然在运行,它会获得调整自身大小的选项(SIGWINCH
)。您可以使用例如links
/ elinks
浏览器。这是ANSI终端模式的真正“用例”:使用“curses”或类似系统移动光标的程序。
正如@ user2491指出的那样,shell-mode
确实处理了带有自动换行的基于文本(基于流)的输出,但却无法运行“curses”类型的程序。它的设计目的是让您的会话更像文本文件,而不像“真正的终端”。