Використовувати Mosh, не відмовляючись від локальної прокрутки / історії?


62

Чи існує спосіб використання, moshне відмовляючись від локальної прокрутки?

В деяких випадках, IP-роумінг дійсно корисний і потрібен, але додаткова термінальна емуляція та ключове передбачення, здається, позбавляються лише локальних буферних відскакувальних ліній та історії сеансів.


Відповіді:


42

Filippo Valsorda має рішення для OS X, яке включає в себе iTerm 2, tmux та mosh .

Його рішення використовує одне вікно / вкладку для підключення до віддаленої оболонки. Оболонка переживає роз'єднання (наприклад, вихід з ладу, зміна IP-адреси, перезавантаження ноутбука) і підтримує прокрутку за допомогою тачпада, копіювальної пасти та кольорів.

Підказки полягають у тому, що ви повинні створювати mosh з джерела, прокрутка є менш текучою, ніж нативна, і перетягування натискання ретранслюється, тому вам потрібно утримувати Option для вибору.

  • iTerm

    У налаштуваннях профілю терміналу увімкніть звітність миші xterm та встановіть тип терміналу звіту на xterm-256color .

  • tmux

    Встановіть ~/.tmux.confна сервері наступне. За допомогою цих налаштувань, якщо ви спробуєте приєднати, а сеансів немає, буде створено нове. Параметри також дозволяють взаємодія миші (і, таким чином, прокрутка тачпада).

    new-session
    set-window-option -g mode-mouse on
    set -g history-limit 30000
    

    Примітка. На останніх tmux (тобто> 2.1), як повідомлялося tmux -V, різні параметри миші (панель зміни розміру, режим миші тощо) були переписані в один варіант mouse, тому вам доведеться змінити другий рядок вище замість set-window-option -gмишіon .

    Цей прокрутка миші також буде працювати, коли ви перебуваєте в режимі прокрутки клавіатури (наприклад, Ctrl- bтоді [), описаному в статті Як прокрутити в tmux .

  • мош

    Стабільна збірка mosh стара і не підтримує звітування миші (та прокручування тачпада). Щоб встановити останню версію, виконайте наступне:

    OS X (ваш клієнт)

    brew install --HEAD mobile-shell
    

    Linux / UNIX (сервер)

    git clone https://github.com/keithw/mosh.git
    cd mosh/
    sudo apt-get build-dep mosh
    ./autogen.sh && ./configure && make
    sudo make install
    

Тепер для підключення просто введіть наступне:

mosh HOST -- tmux a

5
Вважається гарною формою для вставки важливої ​​інформації із посилання в рядку.
HalosGhost

2
хоча ця відповідь була оскаржена з технічних причин, це, мабуть, найкращий (єдиний?) спосіб отримати гідний прокрутки на місцевому клієнті за допомогою mosh.
jayhendren

@jayhendren: або ви можете просто використовувати Вічний термінал .
Дан Даскалеску

Не потрібно бути поблажливим. Мій коментар був з 2014 року. Перший реліз Вічного терміналу був у 2017 році
jayhendren

15

Емуляція терміналу випікається досить глибоко в дизайні моша , так що ні. Mosh працює за рахунок того, що і клієнт, і сервер підтримують своє локальне уявлення про те, як зараз виглядає екран, і це вимагає, щоб сервер виконував емуляцію терміналу. Ось так клієнт може оновити вміст екрану після того, як він деякий час був у відсутності та втратив деякі дані.

Я думаю, що додаток з функцією IP-роумінгу mosh, але без термінальної емуляції, в кінцевому підсумку стане зовсім іншим (але простішим) додатком. Для такої програми втрата даних (у тому числі, коли клієнт деякий час не працює в мережі) може призвести до втрати або пошкодження вмісту екрана. Це прийнятне обмеження, якщо користувач використовує додаток, де це не має великого значення (наприклад, оболонка) або додаток, який має функцію перефарбовування (наприклад, viза допомогою Control-L).

Реалізатори Mosh планують підтримку прокрутки у програмі, проте, щоб компенсувати той факт, що ваш локальний термінал більше не може цього робити. Я думаю, що це мало б працювати, як screenбуфер прокрутки, хоча: керований натисканням клавіш, а не смугою прокрутки та мишкою.


4

Вічний термінал ( https://mistertea.github.io/EternalTerminal/ ) є альтернативою Mosh, який підтримує натиснуту прокрутку і все ще дозволяє IP-роумінгу. ET не робить передбачення набору тексту, тому воно може бути не підходящим, якщо ви маєте високу затримку зв’язку (якщо ви перебуваєте в безпілотник або з мобільного телефону), але особисто ET робить все, що я хочу, і підтримує прокрутку.


це було приголомшливо
Soorena

ET є дивовижним і потребує набагато більше адвокатської діяльності .
Дан Даскалеску

1

Зніміть прапорець "Прокрутити альтернативний екран" у Terminal-> Preferences-> Profiles-> Keyboard fix it for me.


1
ця відповідь не має сенсу, звідки у вас навіть таке меню?
cnst

3
Це налаштування префіксу існує, але якщо зняти прапорець з цього пункту, прокрутка призвела до роботи лише в моєму локальному вікні, тобто прокрутка вниз привела до перегляду рядки, які були там раніше, ніж я використав команду mosh. це не показало мені нічого, що прокрутилося вгорі віддаленого сеансу.
МАРК

2
Спробував це, але це не дозволяє прокручувати сеанс
mosh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.