web-dev-qa-db-ja.com

ローカルのスクロールバック/履歴をあきらめずにMoshを使用しますか?

ローカルのスクロールバックをあきらめずに mosh を使用する方法はありますか?

基本的に、一部の状況では、IPローミングは確かに役立ち、必要ですが、追加の端末エミュレーションとキー予測は、ローカルのスクロールバックバッファー行とセッション履歴のみを取り除くようです。

68
cnst

Filippo Valsordaには iTerm 2、tmux、moshを組み込んだOS X向けのソリューション があります。

彼のソリューションでは、単一のウィンドウ/タブを使用してリモートシェルに接続しています。シェルは切断後も存続し(接続障害、IPの変更、ラップトップの再起動など)、タッチパッドによるスクロールバック、コピー、貼り付け、色をサポートします。

注意点は、ソースからモッシュを構築する必要があり、スクロールはネイティブよりも流動的ではなく、クリックしてドラッグすることが中継されるため、選択するにはオプションを押し続ける必要があります。

  • 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-resize-pane、mouse-modeなど)が単一のオプションmouseに書き直されたため、上の2行目をに変更する必要がありますset-window-option -gmouseon代わりに。

    このマウススクロールは、キーボードスクロールモード(たとえば、 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
46
rbrewer

端末エミュレーションは mosh の設計にかなり深く組み込まれているため、できません。 Moshは、クライアントとサーバーの両方に、現在画面が「どのように見えるか」というローカルの考えを維持させることで機能します。これには、サーバーがターミナルエミュレーションを実行する必要があります。これは、クライアントが画面からしばらく離れて一部のデータを失った後、画面の内容を更新する方法です。

MoshのIPローミング機能を備えているが、端末エミュレーションを備えていないアプリケーションは、まったく異なる(しかしより単純な)アプリケーションになると思います。このようなアプリケーションの場合、データが失われると(クライアントがしばらくネットに接続されていない場合を含む)、画面の内容が失われたり破損したりします。これが問題とならないアプリケーション(シェルなど)または再描画機能を備えたアプリケーション(Control-Lを使用したvi)をユーザーが使用している場合、これは許容できる制限です。

Moshの実装者 アプリケーションでのスクロールバックのサポートを計画しています ただし、ローカルターミナルではもう実行できないという事実を補います。これはscreenのスクロールバックバッファーのように少しは機能する必要があると思います。スクロールバーやマウスではなく、キーストロークによって制御されます。

16
Celada

Eternal Terminal( https://mistertea.github.io/EternalTerminal/ )は、ネイティブスクロールバックをサポートし、IPローミングを許可するMoshの代替です。 ETはタイピングの予測を行わないため、待ち時間が長い接続(ドローンまたは携帯電話からsshを使用している場合)には適さない可能性がありますが、ETは個人的に必要なすべてを行い、スクロールバックをサポートします。

5
DigitalGhost

「ターミナル」->「設定」->「プロファイル」->「キーボード」で「代替画面のスクロール」のチェックを外すと、修正されました。

1
pikachu