ターミナルエミュレータの WezTerm で OpenAI の Codex CLI を使っていたとき、/status コマンドで表示されるステータス画面のレイアウトが崩れていました1。


プログレスバーの記号がずれ、罫線で組まれた枠が歪んでいます2。
1. 環境
- WezTerm
- OpenAI Codex CLI v0.141.0
- M PLUS 1 Code
2. 原因
WezTerm の設定に treat_east_asian_ambiguous_width_as_wide という項目があります。
これを true にすると、Unicode で East Asian Ambiguous——東アジア圏では全角とも半角とも断言しにくい文字のカテゴリ——に分類される記号を、全角として描画します3。
Codex のステータス画面のプログレスバーや罫線、たとえば █ や ─ といった記号もこのカテゴリに入っています4。
Codex 側は半角1文字分を前提にレイアウトを組んでいますが、WezTerm が全角として描画するため1文字ぶん余計に幅を取り、行全体がずれていきます5。
3. 直し方
wezterm.lua の以下の行を false に変えます。
config.treat_east_asian_ambiguous_width_as_wide = falseCode language: Lua (lua)
これで Codex のステータス画面が正しく表示されるようになりました。
4. 日本語表示への影響
ひらがな・カタカナ・漢字は East Asian Ambiguous に含まれないため、この設定を変えても日本語の文字幅には影響しません。
影響を受けるのは、全角か半角か曖昧とされる記号類だけです。
ただし、フォントや他のツールによっては別の記号がずれることもあります。
その場合は cell_width の調整で対処できます6。
- WezTerm は Wez Furlong が開発したオープンソースのターミナルエミュレータ。GPU レンダリングを採用し、macOS・Windows・Linux で動作する。 – Wez’s Terminal Emulator 公式サイト
- Codex CLI は OpenAI が開発するコーディングエージェントで、Rust 製のオープンソースプロジェクトとして GitHub で公開されている。ターミナル上でコードの読み込み、ファイルの編集、コマンドの実行を行う。 – Codex CLI – OpenAI Developers
- デフォルト値は false。true にすると Ambiguous な文字を 2 セル幅として扱う。公式ドキュメントによると、この設定の変更は他のテキスト UI アプリケーションのレイアウトに影響することがある。 – treat_east_asian_ambiguous_width_as_wide – Wez’s Terminal Emulator
- █(U+2588 FULL BLOCK)と ─(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)はいずれも East Asian Width が Ambiguous に分類される。東アジア文脈では全角、それ以外では半角として解釈される。 – U+2588 FULL BLOCK – codepoints.net
- Unicode の技術文書 UAX #11 “East Asian Width” で定義されるカテゴリ。全 Unicode 文字に 6 つの幅プロパティのいずれかが割り当てられ、Ambiguous はそのうち文脈次第で幅が変わる文字を指す。 – UAX #11: East Asian Width – Unicode
- cell_widths は Unicode コードポイントの範囲ごとにセル幅を個別に指定できる設定で、treat_east_asian_ambiguous_width_as_wide より優先して適用される。 – cell_widths – Wez’s Terminal Emulator