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
がウィンドウサイズを決定する方法を設定します。に設定すると、接続されている最大セッションのサイズが使用され、その場合は最小サイズが使用されます。この場合、新しいウィンドウのサイズは次のように設定されます。manual
latest
largest
smallest
manual
基本サイズオプションとウィンドウのサイズが自動的に調整されます。の場合、latest
最新のアクティビティを持つクライアントのサイズを使用します。また見てくださいウィンドウのサイズ変更コマンドと積極的にサイズ変更オプション。
デフォルト値はlatest
tmux 3.2(2020年2月3日リリース)ベースであるか、smallest
以前のバージョンにはlatest
存在しません。しかし、注目に値する。tmuxでiTerm2を使用する制御方法manual
に設定されます、この設定は、iTerm2を切り離して非制御モードで他のクライアントに接続した後も維持されます。制御モードをサポートする他の端末エミュレータも同じように動作できますが、iTerm2のみをテストしました。
答え3
私はターミナル用語に慣れていませんが、次の手順でこのエラーを取り除くことができました。
Ctrlセッションを終了するには+を押します。b d(心配しないでください。そのままセッションに戻ることができます。)
コンソールアプリケーションが実行されていることを確認してください
xterm
。echo $TERM
を返す場合、xterm
この手順はあなたに適している可能性があります。resize
端末を入力してください。もう一度電話してセッションに戻ります
tmux
。ご覧のとおり、すべてのセッションはtmuxを離れていないかのように実行されます。
Tmuxは端末サイズをxterm
「サイズ」変数に関連付けます。$TERM
に設定した場合、screen
その学期セッションのコマンドが何であるかわからないため、役に立ちません。