原文(日本語訳)
ターミナル画面の境界で文字が欠落する問題を修正しました。
原文(英語)
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