Seltsame Vim / Terminal-Nutzung von ssh über Mac OSX

0

Ich verwende ein Terminal von einem Mac OS X 10.10 (Yosemite) und SSH'ing auf einem Fedora-Rechner und habe ein paar seltsame Probleme mit dem Terminal:

  1. Wenn ich :qvon vim komme, ist der Inhalt des vim-Bildschirms immer noch da. Wenn ich :qauf meinem Mac oder sogar vom tatsächlichen Desktop-Bildschirm auf meinem Fedora-Computer aus :qeine VIM-Datei verwende, verschwindet der VIM-Bildschirm und ich kehre zum Terminal zurück (dh ich kehre zur Eingabeaufforderung zurück, in der sich die vorherige Zeile befindet simple $vim <whatever_file_I_edited>.txtwohingegen ich jetzt die vorherige Zeile nicht sehen kann, weil ich immer noch den Inhalt der Datei sehe, die ich über vim bearbeitet habe.

  2. Wenn ich die Funktion zum Scrollen nach oben / unten auf dem Trackpad verwende, werden die vorherigen Einträge zum Terminal gescrollt und nicht die Länge des Terminalfensters.

Wie kann ich diese Probleme beheben?

drjrm3
quelle

Antworten:

0

Sie haben keine anderen "Probleme", als dass Sie sich mit einem xterm-ism zu wohl gefühlt haben und fälschlicherweise erwarten, dass es universell ist.

xterm - und GUI-Terminalemulatoren wie gnome-terminal, lxterminal, konsole usw. - implementieren einen sogenannten "alternativen Bildschirmpuffer". Mit einer Steuersequenz können Programme den Terminalemulator so einstellen, dass er diesen Puffer anzeigt und in ihn schreibt. Mit einem anderen können sie zum ursprünglichen Bildschirmpuffer zurückkehren. Programme wie vim(und less) geben die erste Steuersequenz aus, wenn sie gestartet / fortgesetzt werden, und die zweite, wenn sie heruntergefahren / angehalten werden. Dies bewirkt, dass der vorherige Bildschirminhalt beim vimBeenden wiederhergestellt wird .

Dies ist nicht selbstverständlich.

Nicht alle Terminals und Terminalemulatoren verfügen über einen alternativen Bildschirmpuffer. Der im Kernel Ihres Betriebssystems integrierte Terminalemulator funktioniert nicht. Wenn Sie vimauf einem virtuellen Kernel-Terminal ausgeführt hätten, hätten Sie das gleiche Verhalten beobachtet. Reale Endgeräte tun dies im Allgemeinen nicht. (Tatsächliche Terminals der DEC VT-Familie verfügen beispielsweise über einen Mechanismus, der "Seiten" umfasst, die nicht gleich sind und die von einem anderen Satz von Steuersequenzen gesteuert werden.)

Auch wenn Ihr Terminal über einen solchen verfügt, müssen Sie sicherstellen, dass der Eintrag termcap / terminfo für den aktuellen Terminaltyp über die entsprechenden Informationen verfügt, die TUI-Programmen wie nanound Midnight Commander mitteilen, welche Steuersequenzen zum Anzeigen und Ausblenden des alternativen Bildschirmpuffers ausgegeben werden sollen. Dies ist eine Kombination aus TERMdem Auswählen (und Einstellen) eines geeigneten Umgebungsvariablenwerts, um einen Eintrag aus der termcap / terminfo-Datenbank von Fedora auszuwählen, der mit den Funktionen Ihres lokalen MacOS 10-Terminalemulators übereinstimmt, und vielleicht sogar zum Bearbeiten dieser Datenbank.

Genau das, was Sie eingestellt haben TERM, ist keine feste Antwort, da dies von der Emulation abhängt, für die Sie das Terminalprogramm von MacOS 10 konfiguriert haben. Dazu müssen Sie lediglich die Einstellungen überprüfen. Wenn Sie angegeben haben, dass xterm im 256-Farben-Modus emuliert werden soll, müssen Sie (sehr wahrscheinlich xterm-256color) einen Terminaltyp auswählen , der diesen in der Fedora-Datenbank terminfo beschreibt.

Weitere Lektüre

JdeBP
quelle
Genial, ich habe wirklich alles getan, um festzulegen, dass das MacOS-Terminal verwendet werden soll, xterm-256colordamit ich schöne Farben erhalten kann, wie ich sie mag. Ich werde mehr darüber lesen, wie Sie vorgeschlagen haben - aber kann ich noch eine einfache Frage stellen? Ist es eine einfache Sache, Fedora xterm-256colormitzuteilen, dass ich es erkennen / verwenden möchte und es dann automatisch funktioniert? EDIT: Fedora nutzt eigentlich schon xterm-256color... Jetzt bin ich verwirrt.
drjrm3
0

Aus irgendeinem Grund wurde Vim on Mavericks nicht mit einem Farbschema konfiguriert. Nachdem ich der vimrc-Datei einige Zeilen hinzugefügt hatte (Kopieren und Einfügen von einer Site), verhält sie sich so, wie Sie es in meinem Fall beschrieben haben, indem Sie nach jeder reparierten Anweisung zusätzliches Leerzeichen löschen.

prettymeetsworld
quelle