Gibt es eine Möglichkeit zu verwenden, mosh
ohne auf den lokalen Scrollback zu verzichten?
Grundsätzlich ist IP-Roaming unter bestimmten Umständen in der Tat nützlich und erforderlich, aber die zusätzliche Terminalemulation und die Schlüsselvorhersage scheinen nur die lokalen Scrollback-Pufferzeilen und den Sitzungsverlauf zu beseitigen.
Antworten:
Filippo Valsorda hat eine Lösung für OS X, die iTerm 2, tmux und mosh enthält .
Seine Lösung verwendet ein einzelnes Fenster / eine einzelne Registerkarte, um eine Verbindung zu einer Remote-Shell herzustellen. Die Shell überlebt Unterbrechungen (z. B. Verbindungsfehler, IP-Änderungen, Neustart des Laptops) und unterstützt das Zurückscrollen mit einem Touchpad, Copy-Paste und Farben.
Vorsichtsmaßnahmen sind, dass Sie Mosh aus dem Quellcode erstellen müssen, das Scrollen weniger flüssig als nativ ist und das Klicken und Ziehen weitergeleitet wird, sodass Sie die Option gedrückt halten müssen, um auszuwählen.
iTerm
Aktivieren Sie in den Terminalprofileinstellungen die xterm-Maus-Berichterstellung und setzen Sie den Berichtsterminaltyp auf xterm-256color .
tmux
Stellen Sie
~/.tmux.conf
auf dem Server Folgendes ein. Wenn Sie mit diesen Einstellungen versuchen, eine Verbindung herzustellen, und keine Sitzungen vorhanden sind, wird eine neue erstellt. Die Einstellungen ermöglichen auch Mausinteraktionen (und damit das Scrollen mit dem Touchpad).Hinweis: In neueren Versionen von tmux (dh> 2.1) wurden
tmux -V
die verschiedenen Mausoptionen ( Maus-Größenänderungsfenster, Mausmodus usw.) in eine einzige Option umgeschriebenmouse
, sodass Sie die zweite Zeile ändern müssen oben stattdessen mit derset-window-option -g
Mauson
.Dieses Scrollen mit der Maus funktioniert auch, wenn Sie sich im Tastatur-Scroll-Modus befinden (z. B. Ctrl- bthen [), wie im Artikel Scrollen in tmux beschrieben .
mosh
Die stabile Version von mosh ist veraltet und unterstützt keine Mausberichte (und kein Scrollen mit dem Touchpad). Führen Sie die folgenden Schritte aus, um die neueste Version zu installieren:
OS X (Ihr Client)
Linux / UNIX (der Server)
Um eine Verbindung herzustellen, geben Sie einfach Folgendes ein:
quelle
Die Terminal-Emulation ist ziemlich tief im Design von mosh verankert , also nein. Mosh sorgt dafür, dass sowohl der Client als auch der Server ihre lokale Vorstellung davon behalten, wie der Bildschirm derzeit "aussieht". Dazu muss der Server eine Terminalemulation durchführen. Auf diese Weise kann der Client den Inhalt des Bildschirms aktualisieren, nachdem er für eine Weile abwesend war und einige Daten verloren hat.
Ich denke, dass eine Anwendung mit der IP-Roaming-Funktion von mosh, jedoch ohne Terminalemulation, eine ganz andere (aber einfachere) Anwendung wäre. Bei einer solchen Anwendung würde ein Datenverlust (auch wenn der Client einige Zeit nicht im Netz ist) zu einem Verlust oder einer Beschädigung des Bildschirminhalts führen. Dies ist eine akzeptable Einschränkung, wenn der Benutzer eine Anwendung verwendet, bei der dies keine Rolle spielt (z. B. Shell) oder eine Anwendung, die eine Repaint-Funktion aufweist (z. B.
vi
Control-L).Die Implementierer von Mosh planen jedoch eine Scrollback-Unterstützung in der Anwendung , um die Tatsache auszugleichen, dass Ihr lokales Terminal dies nicht mehr kann. Ich denke, dies müsste ein bisschen wie
screen
der Scrollback-Puffer von funktionieren : gesteuert durch Tastenanschläge, nicht durch Bildlaufleiste und Maus.quelle
Eternal Terminal ( https://mistertea.github.io/EternalTerminal/ ) ist eine Alternative zu Mosh, die natives Scrollback unterstützt und weiterhin IP-Roaming ermöglicht. ET macht keine Tippvorhersage, daher ist es möglicherweise nicht geeignet, wenn Sie eine Verbindung mit hoher Latenz haben (wenn Sie in eine Drohne oder von einem Mobiltelefon aus ssh-en), aber persönlich macht ET alles, was ich will, und unterstützt das Zurückscrollen.
quelle
Das Deaktivieren des Kontrollkästchens "Alternativer Bildschirm scrollen" unter "Terminal" -> "Einstellungen" -> "Profile" -> "Tastatur" hat das Problem für mich behoben.
quelle