Suchen Sie nach einem X-Terminal mit korrekter Fenstergröße

8

Gibt es ein X-Terminal-Programm, das den Inhalt beim Ändern der Fenstergröße neu ausgibt? Gnome-Terminal und Sakura machen es auf halbem Weg gut : Wenn ich das Fenster verkleinere und wieder vergrößere, kommt das Zeug auf die rechte Seite des Bildschirms zurück, wie ich will:

Ein großes Fenster öffnen:

line 1 abcdefghijklmnopqrstuvwxyz       | right margin
line 2 abcdefghijklmnopqrstuvwxyz       | 

Schrumpfen:

line 1 abcdefghijklm | right margin
line 2 abcdefghijklm |

Die Größe auf Original (Gnome-Terminal, Sakura) ändern, das möchte ich sehen:

line 1 abcdefghijklmnopqrstuvwxyz       | right margin
line 2 abcdefghijklmnopqrstuvwxyz       |

Größe auf Original ändern (xterm, lxterm, PuTTY / win32), das gefällt mir nicht:

line 1 abcdefghijklm                    | right margin
line 2 abcdefghijklm                    | 

Das ist okay, einige Terminals funktionieren gut, andere nicht. Wenn ich jedoch ein kleines Fenster öffne und es erweitere, funktionieren alle Terminals auf die gleiche Weise: Die Zeilen bleiben auf der linken Seite umbrochen, anstatt erneut zu fließen und neu einzuwickeln:

Kleines Fenster (Zeile 1 und 2 haben gerade kein Fenster mehr):

line 3 abcdefghijklm | right margin
nopqrstuvwxyz        |
line 4 abcdefghijklm |
nopqrstuvwxyz        |

Größe ändern auf größer:

line 3 abcdefghijklm                    | right margin
nopqrstuvwxyz                           |
line 4 abcdefghijklm                    |
nopqrstuvwxyz                           |

Was ich stattdessen sehen möchte:

line 1 abcdefghijklmnopqrstuvwxyz       | right margin
line 2 abcdefghijklmnopqrstuvwxyz       |
line 3 abcdefghijklmnopqrstuvwxyz       |
line 4 abcdefghijklmnopqrstuvwxyz       |

Gibt es eine Chance, dieses Ergebnis zu erzielen? (Ich benutze Ubuntu mit LXDE, wenn es darauf ankommt).

ern0
quelle
Argh, diese Funktion wurde aus dem Terminator entfernt: "Wir haben sowohl diese als auch die Apple-ähnliche Rückführung von Text versucht, als Sie die Fenstergröße geändert haben, und wir haben beschlossen, dies zu bevorzugen. Leider verfügen wir nicht über die Ressourcen, um zwei Implementierungen zu unterstützen. Ein Reflow ist also keine Option mehr, sondern aus dem Code verschwunden. " software.jessies.org/terminator
ern0

Antworten:

7

Bildschirm macht was Sie wollen. Beim Ändern der Fenstergröße werden Zeilen umbrochen.

sudo apt-get install screen
screen

HTH

Arjan Drieman
quelle
Das Entfernen von einem Terminal mit einer Größe (z. B. 80 x 24) und das erneute Anschließen von einem Terminal mit einer anderen Größe (z. B. 132 x 50) ist problemlos möglich.
Tim Kennedy
2

Habe gerade die Konsole von KDE überprüft. Es funktioniert wie Sie wollen.

paul
quelle
Scheint nicht der Fall zu sein (Konsole 2.8.5)
Romuald Brunet
Es funktioniert für mich: Version 15.08.0
xliiv
2

Der neue Beta-Terminal-Emulator namens FinalTerm unterstützt dies.

Dies ist eine der wichtigsten Funktionen auf ihrer Website .

Bitte beachten Sie, dass sich dieses Terminal noch in einer starken Entwicklung befindet und wahrscheinlich nicht für den täglichen Gebrauch geeignet ist.

Piccolo
quelle
1

Dies ist weitgehend eine Funktion der zugrunde liegenden Anwendung und nicht des Terminalprogramms. Einige Anwendungen fließen den Text korrekt um, andere nicht, wenn sie nicht dafür erstellt wurden.

Normalerweise fängt eine Anwendung (oder ein Terminalprogramm wie xterm) SIGWINCH ab und ändert die Größe entsprechend. Wenn Ihr Terminalprogramm beim Umbrechen des Textes bereits Zeilenumbrüche zum Text hinzugefügt hat, wurden möglicherweise nicht genügend Informationen gespeichert, um zu wissen, welche Zeilen umbrochen werden sollen.

Dies ist im Fall eines Terminalprogramms sehr wahrscheinlich, da dies ein sinnvolles Standardverhalten wäre. Ein Terminalprogramm kann Cursorbewegungsbefehle akzeptieren, sodass eine Folge von Zeichen möglicherweise nicht direkt in Zeilen mit gut verstandenen Zeilenumbruchzeichen übersetzt wird. Es ist wahrscheinlich nicht möglich, dass ein Terminalprogramm im allgemeinen Fall Zeilenumbrüche abruft.

Es kann auch andere Gründe geben. Ich gehe davon aus, dass die meisten, wenn nicht alle Terminalprogramme dieses Verhalten aufweisen werden. Um dies zu beheben, müsste das Terminalprogramm den Eingabestream puffern und seinen gesamten Bildlaufpuffer bei einem Größenänderungsereignis erneut rendern. Post-hoc-Zeilenumbruch ist ein viel einfacheres Problem.

Andere Programme (z. B. fluchbasierte Editoren) verfügen normalerweise über eine interne Dokumentstruktur, die vom Displayumbruch unabhängig ist, sodass sie genügend Informationen enthalten, um den Text korrekt wiederzugeben.

ConcernedOfTunbridgeWells
quelle
1
Das Problem ist klar, aber es sollte irgendwie gelöst werden. Angenommen, es sollte einen virtuellen und einen sichtbaren Bildschirm geben. Auf dem virtuellen Bildschirm sind die Zeilen unbegrenzt lang, und es gibt auch einen großen Zeilenverlauf. Wenn die Größe geändert wird, sollte dieser virtuelle Bildschirm auf dem sichtbaren Bildschirm neu gerendert werden. Cursorbewegungen (und alle VT100-Dinge) sollten auf intelligente Weise ausgeführt werden: Sie können sich auf den virtuellen Bildschirm auswirken, sollten jedoch die tatsächliche Größe des sichtbaren Bildschirms "berücksichtigen". Nicht einfach, aber nicht unmöglich.
ern0
Computerisch schwer bis schwer zu handhaben, denke ich. Ein Terminal kann mit dem Cursor adressiert werden, sodass die Beziehung zwischen den Zeilen auf dem Bildschirm und den an das Terminal ausgegebenen Zeichen nicht so einfach ist wie nur die Zeichenzeilen. xterm ist fast 30 Jahre alt - jemand hätte es inzwischen behoben, wenn es (a) behebbar und (b) ein Problem gewesen wäre.
ConcernedOfTunbridgeWells
Dieser Typ sagt, dass es auf Mac funktioniert askubuntu.com/questions/66315/…
ern0
Nun ... das hängt mit dem Terminalprogramm zusammen. Wenn Ihre Anwendung nur Text gedruckt hat (z. B. grep foo bar.txt:), weiß nur das Terminal, was mit der Ausgabe zu tun ist, wenn sie beendet wurde
Romuald Brunet
1

Auch ich hatte nach so etwas gesucht; Ich ließ zunächst alle meine Terminals mit dem Bildschirm beginnen, was im Großen und Ganzen das war, wonach ich suchte.

Manchmal ist es jedoch nicht das, was Sie wollen, wenn eine Shell im Bildschirm verschachtelt ist, aber Sie benötigen immer noch einen ordnungsgemäßen Zeilenumbruch - ich habe es endlich satt, so viele Terminals in den Lubuntu-Repositories wie möglich und das einzige Ich habe festgestellt, dass der richtige Zeilenumbruch funktioniert rxvt-unicode- es ist nicht das attraktivste Terminal der Welt, aber es ist extrem schnell, und es funktioniert und hat endlich den richtigen Zeilenumbruch bei Größenänderung :)

Mit einigem Fummeln an .Xdefaults können Sie es auch weniger hässlich aussehen lassen!

Bearbeiten: Tatsächlich enthält dieser Beitrag: http://crunchbanglinux.org/wiki/urxvt einige einfache Anweisungen, damit rxvt fast wie ein aktuelles Terminal aussieht . Problem gelöst :)

Seb
quelle
0

VTE unterstützt dies ab Version 0.35 (dies ist die eigentliche Terminal-Engine hinter Gnome-Terminal und Sakura).

egmont
quelle