有时,当我编译脚本时,参数太长,以至于覆盖了终端中的许多行。当我调整终端大小以便更清晰地阅读时,内容不会自动重新调整以适应终端的大小。
有没有办法告诉终端根据终端模拟器的窗口大小重新格式化其输出?
我正在使用 gnome 终端
答案1
无法“告诉终端”“重新格式化”回滚缓冲区。缓冲区已经过去了。也就是说,您有几种可能的情况:
您要重新调整的文本不受任何应用程序控制,实际上位于缓冲区中。在这种情况下,就像上面提到的@SuperBOB一样,几个终端模拟器,包括Gnome终端,已经重新显示缓冲区,以便在不同的地方发生换行;
文本由某些“全屏”应用程序控制(例如,由寻呼机显示的文本,例如
less
或在文本编辑器中)。在这种情况下,可以要求应用程序重绘内容(通过发送重绘信号,据我所知,该信号通常分配给^L
(Control+L))。但很可能你的终端模拟器已经做到了这一点;该文本不受活动应用程序的控制,而是由某种工具显示,该工具对输出进行格式化(添加换行符)以匹配终端宽度。如果是这种情况,那么你就不走运了,因为你不可能施展魔法。
为了进行更详细的分析,我们需要知道哪个程序生成了输出以及该程序和终端仿真器(例如 GNU screen
)之间链接了哪些工具。
答案2
Gnome 终端具有开箱即用的这种行为。可能是您在其中使用的工具?
答案3
Gnome-terminal 从 3.12 版本开始支持此功能(实际上重要的是底层库 vte >= 0.36)。