Y a-t-il un moyen d'utiliser mosh
sans abandonner le défilement local?
Dans certaines circonstances, l’itinérance IP est utile et nécessaire, mais l’émulation de terminal supplémentaire et la prédiction de clé ne semblent se débarrasser que des lignes de tampon de défilement local et de l’historique des sessions.
Réponses:
Filippo Valsorda propose une solution pour OS X intégrant iTerm 2, tmux et mosh .
Sa solution utilise une seule fenêtre / onglet pour se connecter à un shell distant. Le shell survit aux déconnexions (par exemple, échec de connexion, modifications IP, redémarrage de l'ordinateur portable) et prend en charge le défilement avec un pavé tactile, un copier-coller et des couleurs.
Les mises en garde impliquent que vous deviez créer mosh à partir des sources, que le défilement soit moins fluide que le processus natif et que le cliquer-glisser soit relayé; vous devez donc maintenir Option pour le sélectionner.
iTerm
Dans les paramètres du profil du terminal, activez la création de rapports de souris xterm et définissez le type de terminal de rapport sur xterm-256color .
tmux
Placez
~/.tmux.conf
sur le serveur à ce qui suit. Avec ces paramètres, si vous essayez de joindre et qu'il n'y a pas de sessions, une nouvelle session est créée. Les paramètres permettent également les interactions avec la souris (et donc le défilement du pavé tactile).Remarque: sur les tmux plus récents (> 2,1), comme indiqué par
tmux -V
, les différentes options de la souris (volet de redimensionnement de la souris, mode souris, etc.) ont été réécrites en une seule optionmouse
. Vous devez donc modifier la deuxième ligne. ci-dessus à laset-window-option -g
souris à laon
place.Ce défilement de souris fonctionnera également lorsque vous êtes en mode de défilement clavier (par exemple Ctrl, bpuis [), décrit dans l'article Comment faire défiler dans tmux .
mosh
La version stable de mosh est ancienne et ne prend pas en charge les rapports de souris (et le défilement du pavé tactile). Pour installer la dernière version, procédez comme suit:
OS X (votre client)
Linux / UNIX (le serveur)
Maintenant, pour vous connecter, tapez simplement ce qui suit:
la source
L'émulation terminale est profondément ancrée dans la conception de mosh , alors non. Mosh fonctionne en faisant en sorte que le client et le serveur conservent chacun leur idée locale de ce à quoi l'écran "ressemble" actuellement, ce qui nécessite que le serveur émule le terminal. C'est ainsi que le client peut actualiser le contenu de l'écran après une absence ou une perte de données.
Je pense qu'une application avec la fonctionnalité d'itinérance IP de mosh mais sans émulation de terminal finirait par être une application très différente (mais plus simple). Pour une telle application, la perte de données (y compris lorsque le client est hors réseau pendant un certain temps) entraînerait une perte ou une corruption du contenu de l'écran. Ceci est une limitation acceptable si l'utilisateur utilise une application où cela n'a pas beaucoup d'importance (par exemple, un shell) ou une application ayant une fonctionnalité de repeinte (par exemple, en
vi
utilisant Control-L).Les développeurs de Mosh prévoient toutefois une prise en charge du défilement dans l'application , afin de compenser le fait que votre terminal local ne peut plus le faire. Je suppose que cela devrait cependant fonctionner un peu comme
screen
le tampon de défilement arrière: contrôlé par les frappes de clavier, et non par la barre de défilement et la souris.la source
Eternal Terminal ( https://mistertea.github.io/EternalTerminal/ ) est une alternative à Mosh qui prend en charge le défilement natif tout en autorisant l'itinérance IP. ET ne fait pas la prédiction de frappe. Cela peut donc ne pas convenir si vous avez une connexion à latence élevée (si vous utilisez un drone ou un téléphone portable), mais personnellement, ET fait tout ce que je veux et prend en charge le défilement.
la source
Décocher "Faire défiler les autres écrans" dans Terminal-> Préférences-> Profils-> Clavier, corrigé pour moi.
la source