¿Hay alguna manera de usar mosh
sin renunciar al desplazamiento local?
Básicamente, en algunas circunstancias, la itinerancia de IP es realmente útil y necesaria, pero la emulación de terminal adicional y la predicción clave parecen estar eliminando las líneas de búfer de desplazamiento local y el historial de la sesión.
Respuestas:
Filippo Valsorda tiene una solución para OS X que incorpora iTerm 2, tmux y mosh .
Su solución utiliza una sola ventana / pestaña para conectarse a un shell remoto. El shell sobrevive a las desconexiones (p. Ej., Falla de conexión, cambios de IP, reinicio de la computadora portátil) y admite el desplazamiento hacia atrás con un panel táctil, copiar y pegar, y colores.
Las advertencias son que debe construir mosh desde la fuente, el desplazamiento es menos fluido que el nativo y se retransmite el clic y arrastre, por lo que debe mantener presionada la tecla Opción para seleccionar.
iTerm
En la configuración del Perfil de terminal, habilite los informes de mouse xterm y configure el Tipo de terminal de informe en xterm-256color .
tmux
Establezca
~/.tmux.conf
en el servidor lo siguiente. Con esta configuración, si intenta adjuntar y no hay sesiones, se crea una nueva. La configuración también permite interacciones con el mouse (y, por lo tanto, desplazamiento del panel táctil).Nota: en tmux más reciente (es decir,> 2.1), según lo informado
tmux -V
, las diversas opciones del mouse (mouse-resize-pane, mouse-mode, etc.) se han reescrito en una sola opciónmouse
, por lo que debe cambiar la segunda línea arriba alset-window-option -g
mouse en suon
lugar.Este desplazamiento del mouse también funcionará cuando esté en el modo de desplazamiento del teclado (por ejemplo Ctrl, bluego [), descrito en el artículo Cómo desplazarse en tmux .
mosh
La versión estable de mosh es antigua y no admite informes del mouse (y desplazamiento del panel táctil). Para instalar la última versión, haga lo siguiente:
OS X (su cliente)
Linux / UNIX (el servidor)
Ahora, para conectarse, simplemente escriba lo siguiente:
fuente
La emulación de terminal está muy integrada en el diseño de mosh , así que no. Mosh funciona haciendo que tanto el cliente como el servidor mantengan su idea local de cómo se ve actualmente la pantalla, y eso requiere que el servidor emule la terminal. Así es como el cliente puede actualizar el contenido de la pantalla después de que haya estado fuera por un tiempo y haya perdido algunos datos.
Creo que una aplicación con la función de roaming IP de mosh pero sin emulación de terminal terminaría siendo una aplicación bastante diferente (pero más simple). Para una aplicación de este tipo, la pérdida de datos (incluso cuando el cliente está fuera de la red durante algún tiempo) provocaría la pérdida o la corrupción del contenido de la pantalla. Esta es una limitación aceptable si el usuario está usando una aplicación donde esto no importa mucho (por ejemplo, shell) o una aplicación que tiene una función de repintado (por ejemplo,
vi
usando Control-L).Sin embargo, los implementadores de Mosh están planeando el soporte de desplazamiento hacia atrás en la aplicación , para compensar el hecho de que su terminal local ya no puede hacerlo. Sin embargo, supongo que esto debería funcionar un poco como
screen
el búfer de desplazamiento hacia atrás: controlado por las pulsaciones de teclas, no por la barra de desplazamiento y el mouse.fuente
Eternal Terminal ( https://mistertea.github.io/EternalTerminal/ ) es una alternativa a Mosh que admite el desplazamiento nativo y aún permite el roaming IP. ET no hace la predicción de tipeo, por lo que puede que no sea adecuado si tiene una conexión de alta latencia (si está conectando a un dron o desde un teléfono celular), pero personalmente ET hace todo lo que quiero y admite el desplazamiento hacia atrás.
fuente
Desmarcar "Desplazar pantalla alternativa" en Terminal-> Preferencias-> Perfiles-> Teclado lo arregló para mí.
fuente