是否有任何 X 终端程序可以在我调整窗口大小时重排内容? Gnome-terminal 和 Sakura 做得很好半:当我缩小窗口并重新展开它时,这些内容会按照我想要的方式返回到屏幕的右侧:
打开一扇大窗户:
line 1 abcdefghijklmnopqrstuvwxyz | right margin
line 2 abcdefghijklmnopqrstuvwxyz |
缩小它:
line 1 abcdefghijklm | right margin
line 2 abcdefghijklm |
调整为原始大小(gnome-terminal,sakura),这就是我想看到的:
line 1 abcdefghijklmnopqrstuvwxyz | right margin
line 2 abcdefghijklmnopqrstuvwxyz |
调整为原始大小(xterm、lxterm、PuTTY/win32),我不喜欢这样:
line 1 abcdefghijklm | right margin
line 2 abcdefghijklm |
没关系,有些终端运行良好,有些则不行。但是,当我打开一个小窗口并展开它时,所有终端都以相同的方式工作:线条保持在左侧包裹,而不是重新流动和重新包裹:
小窗口(1号线和2号线刚刚跑出窗口):
line 3 abcdefghijklm | right margin
nopqrstuvwxyz |
line 4 abcdefghijklm |
nopqrstuvwxyz |
调整到更大:
line 3 abcdefghijklm | right margin
nopqrstuvwxyz |
line 4 abcdefghijklm |
nopqrstuvwxyz |
我想看到的是:
line 1 abcdefghijklmnopqrstuvwxyz | right margin
line 2 abcdefghijklmnopqrstuvwxyz |
line 3 abcdefghijklmnopqrstuvwxyz |
line 4 abcdefghijklmnopqrstuvwxyz |
有机会得到这个结果吗? (如果重要的话,我正在使用 Ubuntu 和 LXDE)。
答案1
屏幕做你想做的事。它在调整窗口大小时换行。
sudo apt-get install screen
screen
华泰
答案2
我也一直在寻找这样的东西;我最初让所有终端都以屏幕启动,这总体上就是我所追求的。
然而,有时在屏幕内嵌套一个 shell 并不是您想要的,但您仍然需要适当的换行 - 我终于厌倦了这个以及 lubuntu 存储库中尽可能多的终端,也是唯一一个终端我发现正确的换行是rxvt-unicode
- 它不是世界上最有吸引力的终端,但它的速度非常快,而且它可以工作并且最后调整大小时有正确的换行:)
另外,通过大量摆弄 .Xdefaults,你可以让它看起来至少不那么难看!
编辑:事实上,这篇文章:http://crunchbanglinux.org/wiki/urxvt有一些简单的说明让 rxvt 看起来几乎就像最近的终端一样。问题解决了 :)
答案3
刚刚从 KDE 检查了 konsole。它按照你想要的方式工作。
答案4
这很大程度上是底层应用程序的功能,而不是终端程序的功能。某些应用程序将正确地重新排列文本,而另一些应用程序则无法正确地重新排列文本。
通常应用程序(或终端程序,如 xterm)会陷入信号绞车并相应地调整大小。如果您的终端程序在文本换行时已经向文本添加了换行符,则它可能没有保留足够的信息来知道要展开哪些行。
这在终端程序的情况下很可能发生,因为这将是合理的默认行为。终端程序可以接受光标移动命令,因此字符序列可能无法直接转换为具有易于理解的换行符字符的行。在一般情况下,终端程序调用换行符可能是不可行的。
可能还有其他原因。我预计大多数(如果不是全部)终端程序都会有这种行为。据猜测,解决这个问题需要终端程序缓冲输入流并在调整大小事件时重新渲染整个滚动缓冲区。事后换行是一个简单得多的问题。
其他程序(例如基于curses的编辑器)通常具有独立于显示换行的内部文档结构,因此它们保留足够的信息来正确地重排文本。