nach XTerm Control Sequences, diese Sequenz sollte das tun, was gefragt wurde:
CSI ? 7 l
das heißt,
printf '\033[?7l'
Die als
Ps = 7 -> Wraparound Mode (DECAWM).
und das letzte Zeichen dokumentiert l
(kleines L) bezeichnet dies als Rücksetz eher als ein Steuerung eingestellt.
Aus irgendeinem Grund ist der Name der Termini mehr unklar: "automatische Ränder".Diese term Funktionen befassen sich mit der Funktion (siehe terminfo(5)):
auto_right_margin am am terminal has auto‐
matic margins
enter_am_mode smam SA turn on automatic
margins
exit_am_mode rmam RA turn off automatic
margins
Interessanterweise ist die vt100-nam Terminal Beschreibung in ncurses (was anscheinend niemand verwendet) initialisiert, das Terminal zu Verwendung automargins Ränder mit dieser Zeichenfolge:
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
(die \E[?7h
setzt es), und behauptet, dass das Endgerät nicht automatisch Ränder nicht verwendet durch am
Cancelling. Es hat auch die terminfo Fähigkeiten rmam
und smam
. So könnte man dies tun, um zu beweisen, dass es funktioniert:
tput rmam
stty columns 999
ps -efwwwwwl
und (für den normalen Benutzer) sieht die ps
schön gegen den rechten Rand des Terminalfensters abgeschnitten auflistet.
Die anderen Varianten VT220-nam und VT320-nam erscheinen korrekt ...
By the way, für Mac, würden Sie die term Namen wie rmcup
statt der Termcap verwendenRA
, weil OSX ncurses 'tput (terminfo) anstelle der BSD-Variante verwendet.
Weiterführende Literatur:
Gelegentlich jemand fragt nach automargins unterdrücken, weil sie annehmen, dass Endgeräte/pan blättern Sie nach links/rechts, um die Informationen zu zeigen, welches nicht in eine neue Zeile eingepackt wurde. Terminals, die dies tun, sind selten, und OSX-Terminal ist keiner der diese. Es verhält sich wie eine Untermenge von xterm, die selbst die Reihe der DEC-Terminals vt52/vt100/vt220/etc emuliert. In diese Frage ist OP betroffen/verwirrt über diesen Absatz aus dem screen
Handbuch:
Wenn Ihr Terminal ein „true“ auto-Marge Terminal ist (es ist nicht die letzte Position auf dem Bildschirm aktualisiert werden, ohne den Bildschirm scrollen) in Betracht ziehen, eine Version des Termcap des Terminals zu verwenden, die automatische Ränder ausgeschaltet hat. Dies gewährleistet eine genaue und optimale Aktualisierung von der Bildschirm unter allen Umständen. Die meisten Terminals haben heutzutage "magische" Ränder (automatische Ränder plus verwendbare letzte Spalte). Dies ist der VT100 Style-Typ und perfekt für den Bildschirm geeignet. Wenn alles, was Sie haben, ist ein "True" Auto-Margin-Terminal-Bildschirm Inhalt sein wird, es zu verwenden, aber Aktualisieren eines Zeichens in die letzte Position auf dem Bildschirm kann nicht möglich sein, bis der Bildschirm scrollt oder das Zeichen ist in eine andere Position in eine sichere Position bewegt.Diese Verzögerung kann durch Verwendung eines Terminals mit Insert-Zeichen-Fähigkeit verkürzt werden.
Das letzten Position auf dem Bildschirm an der unteren rechten Ecke des Terminals bezieht. Wenn sich der Cursor in der unteren rechten Ecke befindet und Sie ein Zeichen drucken, würden Sie im Normalfall erwarten, dass die Anzeige um eine Zeile nach oben scrollt und das Zeichen in der nächsten Zeile angezeigt wird. Auch (weil Terminals auf verschiedene Arten implementiert werden können), können einige nach oben scrollen, wenn Sie ein Zeichen in der letzten Position drucken. Das VT100 tut dies nicht. Es scrollt nicht nur in diesem Fall nach oben, sondern es ignoriert nicht-druckbare Zeichen, während auf der Rand (siehe Xterm FAQ That description of wrapping is odd, say more?). Es gibt ein terminfo-Flag xenl
, das eingestellt wird, um anzuzeigen, wenn das Terminal dieses spezielle Verhalten ausführt. Etwa ein Drittel der Terminalbeschreibungen in der Terminal-Datenbank hat dieses Flag. Während die meisten von ihnen für Terminals sind, die Sie wahrscheinlich nie finden werden, denken Sie daran, dass der Ratschlag in der Manualseite in eine Ära zurückgeschrieben wurde, in der diese anderen Terminals genauso wahrscheinlich wie ein VT100-Lookike waren. Der frühe Wechsel vergangener Bildschirm ist schlecht, aber der Text war in 1992 auf Usenet zweiten Posting-Bildschirm Der erste Eintrag im Jahr 1987 sagte etwas ähnliches:
Bildschirm nie in der letzten Position der schreibt Bildschirm, es sei denn, die boolesche Fähigkeit LP
ist im Termcap-Eintrag des Terminals gefunden. Bildschirm kann nicht vorhersagen, ob ein bestimmter Terminal scrollt, wenn ein Zeichen in die letzte Spalte der letzten Zeile geschrieben wird; LP
zeigt an, dass es sicher ist, in dieser Position zu schreiben. beachte, dass die LP
Fähigkeit unabhängig von am
(automatischen Rand) ist; für bestimmte Endgeräte, wie beispielsweise die VT100, ist es angemessenen am
sowie LP
in dem entsprechenden Termcap Eintrag (die VT100 nicht bewegt den Cursor zu setzen, wenn ein Zeichen in die letzte Spalte von jedem geschrieben Linie).
Die spätere Formulierung die Tatsache widerspiegelt, dass das terminfo
System war weit verbreitet, und den Namen LP
nicht Termcap Name für entsprechende mit xenl
(es ist xn
) gewählt.
Der Punkt, der all dies ist, dass screen
Versuche zwischen den Programmen zu konvertieren, um verschiedene Terminal-Typen zu schreiben und sie alle wie eine Art von Terminal — erscheinen, was bedeutet, dass es sich um Text auf dem Endgerät des Display in alle die setzen versucht, Standorte. Die untere rechte Ecke ist ein Problem, weil einige Terminals nach oben scrollen würden, was den Versuch vereitelt, dort zu schreiben.Als Abhilfe bereitgestellt einige Endgeräte eine Alternative:
- einen anderen Modus (Einsatz),
- den Cursor auf dem vorletzten Position gebracht des Displays,
- Schreib Zeichen zu füllen , Drücken ein Zeichen in die letzte Position, und
- schalten Sie den Einfügemodus einmal aus (sonst ein Ärgernis).
Etwa zwei Drittel der Beschreibungen in der Terminal-Datenbank haben die Fähigkeit, diesen Insert-Modus (smir
) zu tun. Das war noch nicht perfekt, aber es war sicherlich erwähnenswert im Jahr 1992. Etwa ein Viertel implementieren ein ähnliches ähnliches Merkmal ich1
. Einige implementieren beide (und vi
könnte durch diese, durch den Versuch, beide Methoden zu tun, verwirrt werden).
VT100-Lookalikes bieten eine dritte Möglichkeit, diese letzte Position zu schreiben; screen
überprüft und verwendet, was auch immer da ist.
Haben Sie tatsächlich irgendwelche Probleme oder sind Sie nur vorsichtig, was das 'Bildschirm'-Handbuch sagt? Ich habe keine Probleme bei der Verwendung von "Bildschirm" mit Terminal unter Verwendung der Standardeinstellungen bemerkt. Verwenden Sie die Terminal-Anwendung oder ein anderes Terminalprogramm? –