Czy istnieje sposób użycia mosh
bez rezygnacji z lokalnego przewijania?
Zasadniczo w niektórych okolicznościach roaming IP jest rzeczywiście przydatny i potrzebny, ale dodatkowa emulacja terminala i przewidywanie klucza wydaje się pozbywać tylko lokalnych linii bufora przewijania i historii sesji.
Odpowiedzi:
Filippo Valsorda ma rozwiązanie dla OS X, które obejmuje iTerm 2, tmux i mosh .
Jego rozwiązanie wykorzystuje pojedyncze okno / kartę do połączenia ze zdalną powłoką. Powłoka przetrwa rozłączenia (np. Awaria połączenia, zmiany adresu IP, ponowne uruchomienie laptopa) i obsługuje przewijanie za pomocą touchpada, kopiowanie-wklejanie i kolory.
Zastrzeżeniem jest to, że musisz zbudować mosh ze źródła, przewijanie jest mniej płynne niż natywne, a przeciąganie klikaniem jest przekazywane, więc musisz przytrzymać Option, aby wybrać.
iTerm
W ustawieniach Profilu terminala włącz raportowanie myszy xterm i ustaw Raportuj typ terminala na xterm-256color .
tmux
Ustaw
~/.tmux.conf
na serwerze następujące ustawienia. Przy tych ustawieniach, jeśli spróbujesz dołączyć i nie ma sesji, tworzona jest nowa. Ustawienia umożliwiają także interakcję myszy (a tym samym przewijanie touchpada).Uwaga: W nowszym tmuxie (tj.> 2.1), zgodnie z raportem
tmux -V
, różne opcje myszy (panel zmiany rozmiaru myszy, tryb myszy itp.) Zostały przepisane na jedną opcjęmouse
, więc musisz zmienić drugą linię powyżejset-window-option -g
myszyon
zamian.To przewijanie myszą działa również w trybie przewijania klawiatury (np. Ctrl- bwtedy [), opisanym w artykule Jak przewijać w tmux .
mosh
Stabilna wersja mosh jest stara i nie obsługuje raportowania myszy (ani przewijania touchpada). Aby zainstalować najnowszą wersję, wykonaj następujące czynności:
OS X (twój klient)
Linux / UNIX (serwer)
Teraz, aby się połączyć, wystarczy wpisać:
źródło
Emulacja terminalu jest głęboko osadzona w projekcie mosh , więc nie. Mosh działa tak, że zarówno klient, jak i serwer utrzymują lokalny obraz tego, jak ekran obecnie „wygląda”, a to wymaga emulacji terminala przez serwer. W ten sposób klient jest w stanie odświeżyć zawartość ekranu, gdy nie ma go przez pewien czas i utracił część danych.
Myślę, że aplikacja z funkcją roamingu IP mosh, ale bez emulacji terminala, byłaby zupełnie inną (ale prostszą) aplikacją. W przypadku takiej aplikacji utrata danych (w tym gdy klient jest przez pewien czas odłączony od sieci) spowoduje utratę lub uszkodzenie zawartości ekranu. Jest to dopuszczalne ograniczenie, jeśli użytkownik korzysta z aplikacji, w której nie ma to większego znaczenia (np. Powłoka) lub aplikacji, która ma funkcję odmalowywania (np.
vi
Używając Control-L).Implementatorzy Mosh planują jednak obsługę przewijania w aplikacji , aby zrekompensować fakt, że lokalny terminal nie może już tego zrobić. Myślę, że musiałoby to działać trochę jak
screen
bufor przewijania: kontrolowany przez naciśnięcia klawiszy, a nie pasek przewijania i mysz.źródło
Eternal Terminal ( https://mistertea.github.io/EternalTerminal/ ) to alternatywa dla Mosh, która obsługuje natywne przewijanie i nadal umożliwia roaming IP. ET nie wykonuje przewidywania pisania, więc może nie być odpowiednie, jeśli masz połączenie z dużym opóźnieniem (jeśli łączysz się z dronem lub z telefonu komórkowego), ale osobiście ET robi wszystko, co chcę i obsługuje przewijanie.
źródło
Odznaczenie „Przewiń ekran alternatywny” w Terminalu> Preferencje-> Profile-> Klawiatura naprawiło to dla mnie.
źródło