vi Aktualisierungsprobleme im Bildschirm

vi Aktualisierungsprobleme im Bildschirm

Ich muss ein System verwenden, das eine Anmeldung über einige Citrix/Windows-Virtualisierungen erfordert, um schließlich auf ein RedHat EL 6-System zuzugreifen, bei dem ich ein wirklich seltsames Verhalten erlebe, das die Administratoren nicht beheben konnten.

Im Grunde scheinen beide gut zu funktionieren, vies vimsei denn, ich verwende sie innerhalb eines Bildschirms. Sobald ich mich innerhalb des Bildschirms bewege, treten bei Einfügungen ernsthafte Neuzeichnungsprobleme auf, wenn ich mich außerhalb des ursprünglich angezeigten Inhalts bewege (d. h. an das Ende oder die Mitte einer Datei gehe, die länger ist, als der Bildschirm anzeigen kann, oder wenn ich ein oder zwei Zeilen nach unten scrolle). Wenn dies geschieht, schiebt das -- INSERT --, das am unteren Rand des Terminalbildschirms gezeichnet wird, alles eine Zeile nach oben. Wenn Ihre Änderungen geringfügig sind (d. h. Sie bewegen sich nicht und nehmen viele Änderungen an verschiedenen Zeilen vor), ist das normalerweise in Ordnung, aber die Dinge werden falsch neu gezeichnet (manchmal scrollt zusätzliches Feedback von vi selbst die vorherige Zeile eine Zeile nach oben, sodass Sie am Ende zwei -- INSERT -- Zeilen oder anderen Text haben). Wenn Sie sich jedoch nach einer Einfügung bewegen, insbesondere wenn Sie den Inhalt des Fensters zum Scrollen oder zum vollständigen Zeichnen zwingen, ist das ein totales Durcheinander. Das Bewegen des Cursors zum Zeilenende oder was auch immer folgt nicht dem, was auf dem Bildschirm angezeigt wird.

Um das Ganze noch frustrierender zu machen, kann auf dieses seltsame System auf zwei Arten zugegriffen werden: 1. über eine Terminalsitzung (über einen virtualisierten IE-Browser) und 1. über einen VNC-Desktop (über dieselbe Virtualisierung). Leider ist der VNC-Desktop aufgrund von Aktualisierungsproblemen und hängenden Zeichen (zufällige Zeichen werden hunderte Male wiederholt) für die Befehlszeile völlig unbrauchbar. Aber trotz dieser Probleme funktioniert vi innerhalb von Bildschirmen.

Ich habe die Variablen aus beiden Arten von VI-Sitzungen in Dateien übertragen und sie sind unterschiedlich, aber ich kenne VI nicht gut genug, um zu wissen, welche Variablen der Übeltäter sein könnten.

FWIW, beide verwenden die gleiche VIM 7.2.411-Binärdatei (das Problem besteht weiterhin mit /bin/vi) und Bildschirm 4.00.03. Beide befinden sich auf derselben Maschine

Als ich ein Helpdesk-Ticket einreichte, installierten die Administratoren eine neuere Version von VIM, wodurch die schwerwiegenden Probleme tatsächlich deutlich abgemildert wurden. Allerdings ist das Programm zum Bearbeiten von Dateien über sehr geringfügige Änderungen hinaus immer noch unbrauchbar.

Antwort1

Das Problem kann sein, dass Ihr Bildschirm so konfiguriert ist, dass die letzte Zeile des Terminalfensters als Hardstatuszeile verwendet wird, und Sie öffnen ein Fenster in Ihrem ScreenrcVorKonfigurieren der Hardstatus-Zeile. Enthält Ihre Bildschirmkonfiguration so etwas?

screen 1
# ...
hardstatus alwayslastline "..."

In diesem Fall ist für das Fenster, das durch den Screen-Befehl in screenrc geöffnet wird, nicht die richtige Zeilenanzahl konfiguriert – es berücksichtigt nicht die von der Hardstatus-Zeile verwendete Zeile. Bei anderen Fenstern sollte es jedoch funktionieren (vergleichen Sie die Ausgabe stty sizeim ersten Fenster, das durch screenrc geöffnet wird, und anderen Fenstern).


Ich habe einen Fehler für dieses Problem gemeldetHier. Obwohl es im Nachhinein Sinn macht, dass der Bildschirmbefehl vor der Hardstatus-Konfiguration diesen Effekt haben könnte, ist es aus der Sicht des Benutzers ziemlich unerwartet (viele Konfigurationsdateien haben kein Konzept für Sequenzierung). Und seltsamerweise, wenn Sie etwas wie Folgendes tun:

screen 1
screen 2
screen 3
# ...
hardstatus alwayslastline "..."

Nur Fenster 3 ist falsch konfiguriert.

verwandte Informationen