ローカルスクロールバック/履歴を放棄せずにMoshを使用しますか?


63

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

基本的に、状況によっては、IPローミングが実際に便利で必要ですが、追加の端末エミュレーションとキー予測は、ローカルスクロールバックバッファ行とセッション履歴を取り除くだけのようです。


回答:


43

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

彼のソリューションは、単一のウィンドウ/タブを使用してリモートシェルに接続します。シェルは切断(たとえば、接続障害、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に、さまざまなマウスオプション(マウスサイズ変更ペイン、マウスモードなど)が1つのオプションに書き換えられているmouseため、2行目を変更する必要があります 代わりに上記の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 14年

2
この答えは技術的な理由でダウン投票されましたが、おそらくmoshを使用してローカルクライアントで適切なスクロールバックを取得するための最良の(唯一の?)方法です。
jayhendren 14年

@jayhendren:または、単にEternal Terminalを使用できます。
ダンダスカレスク

見下す必要はありません。私のコメントは2014年から
でした。EternalTerminal

15

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

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

ただし、Moshの実装者は、ローカルターミナルでそれができないという事実を補うために、アプリケーションでのスクロールバックサポートを計画しています。私は、これはのように少し仕事をしなければならないだろうと思いscreen、キーストロークによって制御スクロールバーとマウスません。■スクロールバッファはいえ」を。


4

Eternal Terminal(https://mistertea.github.io/EternalTerminal/)は、ネイティブスクロールバックをサポートし、IPローミングを許可するMoshの代替です。ETはタイピングの予測を行いませんので、高遅延接続がある場合(ドローンまたは携帯電話からsshしている場合)には適していませんが、個人的にETは私が望むすべてを行い、スクロールバックをサポートします。


すごかった
-Soorena

ETは素晴らしく、はるかに多くのアドボカシーが必要です。
ダンダスカレスク

1

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


1
この答えは意味がありません、どこでそのようなメニューを手に入れることができますか?
cnst

3
その設定は存在しますが、チェックを外すと、ローカルウィンドウでのみスクロールが機能します。つまり、下にスクロールすると、moshコマンドを使用する前にあった行が表示されます。リモートセッションの上部からスクロールしたものは何も表示されませんでした。
マーク

2
これを試してみましたが、
mosh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.