Skip to content

原文(日本語訳)

ターミナル画面の境界で文字が欠落する問題を修正しました。

原文(英語)

Fixed character loss at terminal screen boundary

概要

Claude Code 2.1.39では、ターミナルウィンドウの右端(画面境界)に達した際に文字が欠落し、正しく折り返されない問題が修正されました。これにより、長いコード行や出力が正確に表示されるようになりました。

発生していた問題

文字欠落の症状

bash
# 修正前: 80文字の画面幅で長い行を表示

# 表示される内容(右端で文字が消える):
const veryLongFunctionName = (parameter1, parameter2, parameter3, paramet

# 実際の内容:
const veryLongFunctionName = (parameter1, parameter2, parameter3, parameter4, parameter5) => {

# "er4, parameter5) => {" の部分が欠落

影響を受けていたケース

  • 長いコード行の表示
  • ファイルパスの表示
  • エラーメッセージ
  • コマンド出力
  • テーブル形式のデータ

実践例

長いコード行の表示

bash
claude

# 長い関数定義を含むファイルを読む
# "Show me the authentication function in src/auth/index.js"

# 修正前:
// src/auth/index.js:23
export const authenticateUserWithCredentialsAndGenerateSessionToken = (us

# 修正後:
// src/auth/index.js:23
export const authenticateUserWithCredentialsAndGenerateSessionToken = (use
rname, password, options) => {

適切に折り返され、すべての文字が表示されます。

ファイルパスの表示

bash
claude

# 深い階層のファイルパスを表示
# "List all configuration files in the project"

# 修正前:
/home/user/projects/myapp/config/environments/production/database/connect

# 修正後:
/home/user/projects/myapp/config/environments/production/database/connecti
on-pool-settings.json

テーブル形式データの表示

bash
# データベースクエリ結果の表示

# 修正前(右端の列が欠落):
| ID  | Name                | Email                           | Registere
| 001 | John Doe            | john.doe@example.com           | 2026-01-1
| 002 | Jane Smith          | jane.smith@verylongdomain.co   | 2026-01-1

# 修正後(すべての列が表示される):
| ID  | Name                | Email                           | Registered
      |
| 001 | John Doe            | john.doe@example.com           | 2026-01-15
      |
| 002 | Jane Smith          | jane.smith@verylongdomain.com  | 2026-01-16
      |

JSONの表示

javascript
// 長いキーや値を持つJSON

// 修正前:
{
  "veryLongConfigurationKeyNameForDatabaseConnectionPoolSettings": "postgr

// 修正後:
{
  "veryLongConfigurationKeyNameForDatabaseConnectionPoolSettings": "postgre
sql://localhost:5432/mydb"
}

Git差分の表示

bash
claude

# "Show me the git diff for the latest commit"

# 修正前(行末が切れる):
- const oldImplementation = (param1, param2, param3) => processDataWithOl
+ const newImplementation = (param1, param2, param3) => processDataWithNe

# 修正後(完全な差分が表示):
- const oldImplementation = (param1, param2, param3) => processDataWithOld
Method();
+ const newImplementation = (param1, param2, param3) => processDataWithNew
Method();

ターミナル幅の検出と対応

動的な幅調整

bash
# ターミナルウィンドウのサイズ変更に対応

# ウィンドウを80文字幅から120文字幅に拡大
# → 自動的に再レンダリングされ、折り返しが調整される

# ウィンドウを縮小
# → 適切に再折り返しされる

幅検出の確認

bash
# 現在のターミナル幅を確認
tput cols
# 出力: 80

# Claude Codeが認識している幅を確認
claude --debug

# Debug info:
# Terminal width: 80 columns
# Terminal height: 24 rows

異なるターミナル環境での動作

小さなターミナル(80文字)

bash
# 80文字幅のターミナルで長い行を表示

export COLUMNS=80
claude

# 適切に折り返される:
const someLongFunction = (param1, param2, param3, param4, param5, param6,
  param7, param8) => {
  return result;
};

広いターミナル(120文字以上)

bash
# 120文字幅のターミナルで同じ内容を表示

export COLUMNS=120
claude

# 1行で表示される:
const someLongFunction = (param1, param2, param3, param4, param5, param6, param7, param8) => {

非標準的なターミナルエミュレータ

bash
# tmux, screen, WSL等でも正しく動作

# tmux内で実行
tmux
claude

# screenで実行
screen
claude

# WSLで実行(Windows Terminal)
claude

特殊文字と絵文字の処理

マルチバイト文字

bash
# 日本語や絵文字を含む長い行

# 修正前(文字が途中で切れる):
これは非常に長い日本語のテキストで、ターミナルの幅を超えると文字が欠落

# 修正後(正しく折り返し):
これは非常に長い日本語のテキストで、ターミナルの幅を超えると文字が欠落す
る問題がありました

絵文字とアイコン

bash
# 絵文字を含む長い行

# 修正前:
 Test passed: authentication 🔐 security 🛡️ validation 📝 logging

# 修正後(絵文字の幅も考慮して折り返し):
 Test passed: authentication 🔐 security 🛡️ validation 📝 logging
performance

パフォーマンスへの影響

折り返し処理の最適化

bash
# 大量のテキストでもスムーズに処理

# 1000行のログファイル
claude

# "Display the entire application.log file"

# 修正前:
# - 折り返し計算が遅い
# - 表示に数秒かかる
# - スクロールがカクつく

# 修正後:
# - 高速な折り返し計算
# - 即座に表示
# - スムーズなスクロール

設定とカスタマイズ

折り返し動作の設定

json
// ~/.claude/settings.json
{
  "terminal": {
    "word_wrap": true,           // 単語単位で折り返し
    "hard_wrap": false,          // 文字単位での強制折り返しを無効化
    "wrap_indicator": "↩",      // 折り返し位置に表示するインジケータ
    "preserve_indentation": true // インデントを保持
  }
}

表示幅の強制設定

bash
# 特定の幅を強制する場合
export CLAUDE_TERMINAL_WIDTH=100
claude

# または設定ファイルで
{
  "terminal": {
    "force_width": 100
  }
}

注意点

  • ターミナルエミュレータの互換性: 一部の古いターミナルエミュレータでは完全に対応していない場合があります
  • フォントの幅: 等幅フォント(monospace)の使用を推奨します。プロポーショナルフォントでは正確な折り返しができません
  • ANSI エスケープシーケンス: カラーコードやフォーマット指定は折り返し位置の計算に影響しません
  • タブ文字: タブ文字は設定されたタブ幅(通常8または4)で展開されてから折り返し計算されます

トラブルシューティング

折り返しが正しく動作しない場合

bash
# ターミナルの環境変数を確認
echo $TERM
# 推奨: xterm-256color, screen-256color

# ターミナル情報をリセット
reset

# Claude Codeを再起動
claude

文字が重なる、ずれる場合

bash
# フォント設定を確認
# - 等幅フォントを使用しているか
# - フォントサイズが適切か
# - 行間が適切か

# ターミナルのレンダリング設定を確認
# iTerm2: Preferences → Profiles → Text
# Alacritty: alacritty.yml の font 設定

幅検出が誤っている場合

bash
# 手動で幅を設定
export COLUMNS=80
export LINES=24
claude

# または
stty cols 80 rows 24
claude

関連情報