tmuxがターミナルウィンドウによってサイズ変更されない

tmuxがターミナルウィンドウによってサイズ変更されない

tmuxセッションを含むターミナルウィンドウのサイズを変更すると、tmuxは変更を検出しませんが、以前のウィンドウ境界内で正常に動作し続けます。 tmux ls接続する前に、接続されている他のクライアントは表示されませんでした。

$ tmux ls
admin: 1 windows (created Mon Apr 27 15:12:58 2015) [272x75]
apt-runs: 3 windows (created Mon Apr 27 15:17:50 2015) [272x75]
lal-dev: 4 windows (created Tue Jun  9 12:24:25 2015) [238x73]

これは特定のホスト(tmux 1.9aを実行)でのみ発生します。原因は何ですか?

サイズを変更する前に: 今後

サイズ変更後: ここに画像の説明を入力してください。

答え1

最も簡単な方法は、接続時にセッションから別のクライアントを分離することです。

tmux attach -d

または短い

tmux a -d

あるいは、セッションに接続する前に、追加のクライアントを別のセッションに移動することもできます。https://stackoverflow.com/a/7819465/1069083

答え2

window-sizeこれはtmuxオプションがに設定されている場合に発生する可能性がありますmanual。このオプションをオフにするには、Ctrl + Bを押して次のように入力します。

:set-option -u window-size

window-sizeウィンドウごとのオプションなので、セッション内のサイズが間違っているすべてのウィンドウに対して実行する必要があります。

tmuxのマニュアルページから:

ウィンドウサイズ largest| :tmuxsmallestがウィンドウサイズを決定する方法を設定します。に設定すると、接続されている最大セッションのサイズが使用され、その場合は最小サイズが使用されます。この場合、新しいウィンドウのサイズは次のように設定されます。manuallatestlargestsmallestmanual基本サイズオプションとウィンドウのサイズが自動的に調整されます。の場合、latest最新のアクティビティを持つクライアントのサイズを使用します。また見てくださいウィンドウのサイズ変更コマンドと積極的にサイズ変更オプション。

デフォルト値はlatesttmux 3.2(2020年2月3日リリース)ベースであるか、smallest以前のバージョンにはlatest存在しません。しかし、注目に値する。tmuxでiTerm2を使用する制御方法manualに設定されます、この設定は、iTerm2を切り離して非制御モードで他のクライアントに接続した後も維持されます。制御モードをサポートする他の端末エミュレータも同じように動作できますが、iTerm2のみをテストしました。

答え3

私はターミナル用語に慣れていませんが、次の手順でこのエラーを取り除くことができました。

  1. Ctrlセッションを終了するには+を押します。b d(心配しないでください。そのままセッションに戻ることができます。)

  2. コンソールアプリケーションが実行されていることを確認してくださいxtermecho $TERMを返す場合、xtermこの手順はあなたに適している可能性があります。

  3. resize端末を入力してください。

  4. もう一度電話してセッションに戻りますtmux。ご覧のとおり、すべてのセッションはtmuxを離れていないかのように実行されます。

Tmuxは端末サイズをxterm「サイズ」変数に関連付けます。$TERMに設定した場合、screenその学期セッションのコマンドが何であるかわからないため、役に立ちません。

関連情報