Codex CLI 0.129.0 で TUI の composer に Vim モードが入ったので試してみた
どうも!オペ部の西村祐二です!
OpenAI Codex CLI の rust-v0.129.0 が2026-05-07にリリースされました。TUI のメッセージ入力欄 (composer) に Vim 編集モードが入り、/vim でトグルできるようになっています。普段から Vim キーバインドをよく利用するため、実際に触って挙動を確認してみました。
Vim モードとは
PR #18595 (feat(tui): add vim composer mode) で追加された機能で、Codex の TUI 下部に表示されるメッセージ入力欄を Vim の Normal / Insert モードで操作できるようになります。これまでも tui.keymap 系の設定でキーマップを変更することはできましたが、composer 自体は素のテキストフィールドでした。Vim 利用者からは「hjkl でカーソル移動したい」「dd で行を消したい」というニーズがあり、今回の追加はそれに応えたもののようです。
リリースノートでは次のように紹介されています。
The TUI now supports modal Vim editing in the composer, including
/vim, default-mode config, and Vim-specific keymap contexts. (#18595)
試してみる
環境
- Codex CLI 0.130.0 (Vim モードは 0.129.0 で追加、0.130.0 で確認)
- macOS (Apple Silicon)
1. /vim でトグルする
codex で TUI を起動した状態で composer に /vim と打ち込んで Enter を押すと Vim モードに入ります。もう一度 /vim を実行すると素のテキストフィールドへ戻ります。Vim モードに入った直後は Normal mode で、i / a / I / A / o / O を押すと Insert mode へ移行する見慣れたフローでした。

2. デフォルトで Vim モードを有効にする
毎回 /vim を打つのが面倒な場合は、~/.codex/config.toml に次のように書いておくと、起動時から Vim モードが有効になります。
[tui]
vim_mode_default = true
vim_mode_default = true の状態でも /vim でその場でオフにできるので、Vim キーバインドを基本にしつつ、長文を貼り付けたいときだけ素のモードに切り替えるといった使い方が良さそうです。
3. 使えるキー操作
実装ファイル (codex-rs/tui/src/keymap.rs) を読みつつ手元で確認できたデフォルトのキーは以下の通りでした。
| カテゴリ | キー | 動作 |
|---|---|---|
| モード遷移 | i / Insert / a / A / I / o / O |
Insert mode へ |
Esc |
Normal mode へ | |
| 移動 | h j k l / 矢印キー |
1文字ずつ移動 |
w b e |
単語単位の移動 | |
0 $ |
行頭 / 行末 | |
| 編集 | x |
カーソル下の1文字を削除 |
D |
行末まで削除 | |
Y |
1行ヤンク | |
p |
ヤンクした内容を貼り付け | |
| Operator | dd / yy |
行削除 / 行ヤンク |
d{motion} / y{motion} |
モーション指定の削除 / ヤンク | |
Esc |
Operator-pending のキャンセル |
Visual mode はまだ実装されていません。Normal mode 中の / はスラッシュコマンドの入力に、! は shell mode の起動に割り当てられているので、Vim の / 検索とは別物として動きます。履歴の境界に居るときに j / k を押すとプロンプト履歴の前後移動になる、というあたりは TUI 側の挙動を活かした調整が入っているようでした。
4. キーマップを上書きする
/vim のグローバルなトグルキーをショートカットに割り当てたい場合は、tui.keymap.global.toggle_vim_mode で設定できます。同様に、Vim Normal / Operator-pending の各バインドも tui.keymap.vim_normal.* と tui.keymap.vim_operator.* で上書きできるようになっていました。
[tui.keymap.global]
toggle_vim_mode = ["ctrl+alt+v"]
/keymap コマンドで開くピッカーにも vim_normal / vim_operator のコンテキストが増えており、現在割り当たっているキーの一覧を確認できます。デバッグ用には PR #20794 で追加された /keymap debug も使えて、ターミナルが送ってくるキーコードをそのまま確認できるので、修飾キー絡みでバインドが効かないときに役立ちそうです。

試してみた感想
普段からvimを利用しているユーザーにとってはcomposer 内で dd や cw 相当の操作ができるだけでも、ちょっとした書き直しが早くなるのではと感じました。
一方で、Visual mode が無いため範囲選択して一気に編集する操作はまだ素のテキストフィールドに戻したくなる場面がありました。/vim でいつでも切り替えられるので、用途ごとにオンオフを使い分けるのが現実的そうです。
まとめ
Codex CLI 0.129.0 で TUI の composer に Vim モードが入り、/vim でその場トグル、tui.vim_mode_default = true で起動時から常時オンにできるようになりました。デフォルトのキー割り当ては Normal / Insert / Operator-pending を一通りカバーしており、dd や y{motion} といった日常的なオペレーションは問題なく動きました。
一方で、Visual mode は未実装で d{motion} / y{motion} のモーションも w/b/e/0/$ 程度に限られているため、複雑な編集まで composer 内で完結させるのは現時点では難しそうです。ヤンクレジスタも内部バッファでシステムクリップボードとは独立しているので、外部とのやり取りは引き続き Cmd+C / Cmd+V に頼ることになります。
普段から Vim キーバインドで操作している方であれば、vim_mode_default = true にしてターミナル全体とリズムを揃え、長文編集が必要な場面だけ /vim で素のフィールドに戻すという使い分けが現実的そうです。
誰かの参考になれば幸いです。
参考リンク:








