Claude Code SSH TERM設定 tmux ターミナル 文字幅 端末エミュレータ 表示崩れ

まず画面を再描画してみる — 多くは端末側の描画ズレで、Claude Codeの不具合ではない

表示が崩れる、カーソルが飛ぶ、勝手にスクロールする——こうした症状のほとんどは、端末エミュレータが描画バッファを取りこぼしただけです。疑うべきはClaude Code本体ではなく、いま開いているターミナルの表示状態のほう。作業内容やコンテキストが壊れたわけではないので、慌ててセッションを閉じる必要はありません。

最初にやることは一つ、画面の再描画です。

ウィンドウのリサイズ・画面クリアで直るか(ここで直れば原因は端末の描画バッファ)

ターミナルのウィンドウを一度リサイズしてみてください。端末は幅が変わると画面全体を描き直すため、これだけで崩れが消えることが多いはずです。リサイズが面倒なら Ctrl+L の画面クリアでも同じ効果が得られます。

これで正常に戻れば原因は確定で、Claude Codeの出力ではなく、端末が受け取った制御シーケンスの反映ズレだったということです。以後も再現するなら、次のH3の環境要因を疑ってください。逆に、再描画しても文字化けや行ズレが残るなら、一時的なバッファの問題ではありません。後半で扱う端末環境そのものの設定を見に行くことになります。

疑うべきは何か:TERM設定・端末エミュレータの相性・日本語などの文字幅

再描画で直る症状の背景は、たいてい次の三つのいずれかです。

  • TERM 環境変数が実際の端末と食い違っている(echo $TERM で確認。多くは xterm-256color が妥当)
  • 端末エミュレータが高頻度の再描画に追いつけていない
  • 日本語や罫線などの文字幅を端末が誤って数え、行がずれる

特に三つ目は根が深く、全角文字や「あいまい幅」の記号を半角として扱う端末では、進捗表示のたびにカーソル位置がずれていきます。echo $LANGUTF-8 が含まれるか、端末側のエンコーディング設定と一致しているかも併せて確認してください。

再描画で直らない時の順番:端末環境・接続経路・日本語表示を切り分ける

再描画で戻らないなら、崩れは一時的なものではありません。「接続経路 → 文字幅 → 環境の記録」の順に進めるのが最短です。手元の端末だけで起きるのか、経由しているレイヤーが原因なのかを先に確定させます。

SSHやtmux/screen越しで悪化する場合に確認すること

SSHやtmux、screenを挟むと制御シーケンスがもう一段翻訳されるため、崩れが増幅します。切り分けは単純で、これらを外してローカルの端末で直接Claude Codeを動かすこと。それで崩れが消えるなら、原因はClaude Codeではなく中間レイヤー側です。

tmux利用時は、内側と外側で TERM が二重に上書きされて食い違うのがよくある落とし穴です。tmux内で echo $TERM を実行し、screen-256color など想定どおりの値になっているかを見てください。ここで期待と違う値が出ていれば、まずtmuxの設定ファイルの default-terminal を見直すのが先決で、Claude Code側を触るのは後回しで構いません。

設定を変えても再発する時に残しておくべき環境情報と報告先

TERMも文字幅も直したのに再発するなら、環境固有の相性問題として報告に回す段階です。ただし手ぶらで報告しても再現してもらえません。

最低限、次の情報は控えておいてください。

  • OSと端末エミュレータの種類・バージョン
  • echo $TERMecho $LANG の値
  • SSH/tmux/screenを経由しているか、その有無で症状が変わるか
  • 崩れが起きる直前の操作(長い出力の途中か、入力中かなど)

これらを添えて、Claude Codeの公式GitHubリポジトリのIssueで既存の報告を検索し、なければ環境情報付きで起票します。同じ端末の組み合わせで先行事例が見つかることも珍しくありません。