Codexで改行できなくて困ってない?Ctrl+Jから全操作まで徹底解説
「Codexで改行しようとしたら送信されちゃった…」「MacとWindowsで操作が違うって本当?」そんな疑問を抱えているなら、この記事がズバリ答えを出します。Codex CLIをはじめとするAI系CLIツールでの改行方法は、2025〜2026年にかけて大きく変化しており、以前の情報のまま操作していると混乱するのも無理はありません。この記事では、Ctrl+JやShift+Enterの使い分け、tmux環境での注意点、WindowsとWSLの改行コード問題まで、実際に調査してわかったことを余すところなくまとめました。
改行ひとつとっても、ターミナルエミュレーター・OSの種類・CLIツールのバージョンによって挙動が異なります。さらに「文字コードとしての改行(LF/CRLF)」と「入力時の改行操作」は別の話なので、混同すると余計に迷宮に迷い込みます。この記事ではその両方をきっちり切り分けながら、初めてCodexを触る方でも迷わないよう順を追って説明していきます。
| この記事のポイント |
|---|
| ✅ Codex CLIでの改行キーは現在Ctrl+Jが標準(EnterキーはNG) |
| ✅ MacのClaude CodeもCtrl+J改行に変更済み(Shift+Enterから切り替わり) |
| ✅ tmux環境ではShift+Enterのリマップ設定が必要になる場合がある |
| ✅ WindowsネイティブではCRLF問題に注意しつつWSLと使い分けるのが現実的 |
Codex CLIで改行する方法と操作キーの基本知識

- Codexで改行するにはCtrl+Jを使うのが現在の正解
- MacのCodexで改行するにはCtrl+Jが標準(Shift+Enterから変更済み)
- Claude Codeで改行するにはCtrl+Jが最新の正式な方法
- tmux上でShift+Enterを送信するには.tmux.confの設定が必要
- Codexのキーバインド一覧を把握しておくと操作効率が上がる
- GhosttyターミナルだけはShift+Enterで改行できる例外がある
Codexで改行するにはCtrl+Jを使うのが現在の正解

Codex CLIで複数行のテキストを入力したい場合、現在の正解は Ctrl + J です。Enterキーを押すと即座に送信されてしまうため、改行のつもりが誤って指示を実行してしまうことがあります。これはCodexに限らず、同系統のAI系CLIツール全般に共通する仕様です。
「2025年02月12日時点で、以下のCLIで Ctrl + J による改行が標準サポートされています。Cursor CLI / Codex / Gemini CLI / OpenCode / Claude Code」
(引用元:https://qiita.com/hrfm1623/items/e03544f858d6815c2096)
上記のように、Codex・Cursor CLI・Gemini CLI・OpenCode・Claude Codeという主要なAI CLIツールはすべてCtrl + Jで改行できるよう統一されています。この標準化は利用者にとって大きなメリットで、複数のツールを使い分けている場合でも、同じキーバインドで操作できます。
ただし、この仕様は比較的新しい変更であることに注意が必要です。以前はShift+Enterで改行できたツールもあり、使用しているバージョンやターミナルエミュレーターによっては動作が異なる可能性があります。もしCtrl + Jが効かない場合は、CLIツールのバージョンを確認するのが先決です。
📋 Codex CLIの主要な操作キー一覧
| 操作 | キー | 説明 |
|---|---|---|
| 改行(複数行入力) | Ctrl + J | 送信せずに次の行に移る |
| 送信(指示を実行) | Enter | 入力内容をAIに送信する |
| 処理の中断 | Ctrl + C | 進行中の処理をキャンセル |
MacのCodexで改行するにはCtrl+Jが標準(Shift+Enterから変更済み)

Mac環境でCodexを使う場合、かつてはShift+Enterで改行できる時期がありましたが、現在の最新バージョンではCtrl+Jが標準となっています。この変更はClaude Codeでも同様に起きており、Macユーザーが混乱するケースが多く報告されています。
「Mac版のClaude Codeではshift+Enterでの改行でしたが、送信に変わっておりCtrl+Jでの改行となります」
「Mac環境も最新バージョン(v2.1.33)のClaudeCodeではCtrl + Jで改行に変更されているみたいなので更新しました」
(引用元:https://qiita.com/hrfm1623/items/e03544f858d6815c2096)
Macで使われているGhosttyというターミナルエミュレーターを使っている場合は例外があり、Ghostty上ではShift+Enterで改行できるという報告もあります。これはGhosttyがKitty keyboard protocolという入力プロトコルをサポートしており、Shift+Enterの入力を正しく受け取れるためと考えられます。
つまりMacユーザーの場合、以下のように覚えておくとスッキリします。
📌 Mac環境での改行キー早見表
| ターミナルエミュレーター | 改行キー | 備考 |
|---|---|---|
| 一般的なターミナル(Terminal.app等) | Ctrl + J | 現在の標準 |
| Ghostty | Shift + Enter | なぜかこちらで動作する |
| iTerm2等その他 | Ctrl + J | 基本的に統一済み |
バージョンアップのたびにこのキーバインドが変わることがあるため、「慣れた操作で改行できなくなった」と感じたら、まず公式ドキュメントや最新情報を確認することを強くおすすめします。
Claude Codeで改行するにはCtrl+Jが最新の正式な方法

「Claude Codeで改行するにはどうすればいいですか?」という疑問も非常に多く寄せられています。Claude CodeはAnthropicが提供するAI搭載のCLIツールで、Codex CLIと同様の操作体系を持っています。
現時点での答えは明確です。Claude Codeでの改行はCtrl + J です。以前のバージョンではShift+Enterが使えた時期がありましたが、アップデートを経て現在はCtrl+Jに統一されています。
「統一されました、がshift+enterで慣れてしまって困っています」
(引用元:https://qiita.com/hrfm1623/items/e03544f858d6815c2096)
実際、この変更に慣れるまで時間がかかるユーザーも多いようです。長年Shift+Enterを使ってきた場合、指が無意識にそちらを押してしまい、意図せず送信してしまうことがあります。意識的にCtrl+Jに切り替えるまでは、少し不便に感じるかもしれません。
また、注意点として、デフォルトでパネル切り替えにCtrl+Jが割り当てられているIDEやターミナル環境では、キーバインドの競合が発生することがあります。その場合はIDEやターミナル側のキーバインドを解除する必要があります。
✅ Claude Codeで改行できないときのチェックリスト
- [ ] Ctrl + Jを試したか
- [ ] IDEのパネル切り替えにCtrl+Jが割り当てられていないか
- [ ] Claude Codeのバージョンが最新か
- [ ] Ghostty上で動かしていないか(Shift+Enterで動く可能性)
tmux上でShift+Enterを送信するには.tmux.confの設定が必要

tmuxというターミナルマルチプレクサ(複数のターミナルを一つの画面で管理するツール)を使っている場合、Shift+EnterやCtrl+Jの入力が正しく伝わらない問題が発生することがあります。
「これらのツールはKitty keyboard protocolというものでGhosttyなどのターミナルエミュレーターからShift+Enterを受信するようだが、tmuxを経由するとその入力が中継できずにただの改行として認識されてしまうようだった。」
(引用元:https://kurochan-note.hatenablog.jp/entry/2026/02/03/074837)
この問題の背景には、Kitty keyboard protocolという比較的新しい入力プロトコルがあります。Codex CLIやClaude Codeなどの最新AI CLIツールはこのプロトコルを使って特殊キー入力を受け取っていますが、tmuxがこのプロトコルに完全対応していないため、中継時に情報が失われてしまいます。
解決策として有効なのが、.tmux.confに以下の1行を追記する方法です。
bind -n S-Enter send-keys Escape "[13;2u"
この設定はShift+Enterの入力を検知した際に、本来CLIツールに届くべきエスケープシーケンス(Escape "[13;2u")を送信するようリマップするものです。
📋 tmux環境での改行問題 解決策まとめ
| 問題 | 原因 | 解決策 |
|---|---|---|
| tmux経由でShift+Enterが効かない | Kitty keyboard protocolの非対応 | .tmux.confにリマップ設定を追加 |
| Ctrl+Jが効かない | キーバインド競合 | tmuxのキー設定を確認・変更 |
| ただの改行として認識される | プロトコルの中継失敗 | 上記のエスケープシーケンス送信設定 |
tmuxを日常的に使っているエンジニアであれば、この設定を早めに入れておくことで、AI CLIツールとの連携がスムーズになります。
Codexのキーバインド一覧を把握しておくと操作効率が上がる

Codex CLIのセッション内では、改行以外にもいくつかの便利なキーバインドがあります。これらを把握しておくと、日々の操作が格段に効率よくなります。
「Codex のキーバインド:セッション内での改行 -> Ctrl + J / 進行している処理の途中終了 -> Ctrl + C」
(引用元:https://zenn.dev/hokuto_tech/articles/97fa88f7805a23)
また、Codexのインタラクティブモード内では、スラッシュコマンドと呼ばれる特殊な命令も使えます。これらはキーバインドとは異なりますが、セッション管理において非常に重要な役割を果たします。
📋 Codex CLIのキーバインド一覧
| キー | 機能 |
|---|---|
| Ctrl + J | 改行(送信せずに次の行へ) |
| Enter | 送信(指示を実行) |
| Ctrl + C | 処理の強制中断 |
📋 Codex CLIの主要スラッシュコマンド
| コマンド | 機能 |
|---|---|
| /init | 初期化テンプレートや設定のブートストラップ |
| /new | 新しい会話に切り替え(セッション状態のクリア) |
| /model | AIモデルの切り替え |
| /compact | 会話履歴のトークンを要約・圧縮 |
| /help | ヘルプを表示 |
| /quit | セッション(Codex)を終了 |
| /status | 現在のセッション設定やトークン使用状況を表示 |
これらを把握しておくことで、Codex CLIの操作がより直感的になります。特に長い作業セッション中に/compactでコンテキストを圧縮したり、/newで会話をリセットしたりするのは、実用上とても重要なテクニックです。
GhosttyターミナルだけはShift+Enterで改行できる例外がある

前述のとおり、一般的なターミナルではCtrl+Jが標準的な改行キーになっていますが、Ghosttyというターミナルエミュレーターを使っている場合に限り、Shift+Enterで改行できるという例外があります。
「GhosttyだとShift + Enterで改行みたいです(why?)」
(引用元:https://qiita.com/hrfm1623/items/e03544f858d6815c2096)
これはGhosttyがKitty keyboard protocolをネイティブでサポートしているためと考えられます。Ghosttyから起動したCLIツールはShift+Enterをそのまま受け取れるため、以前の操作感のままShift+Enterが使えるという状況になっているようです。
一方でtmux経由にすると同じGhostty環境でもShift+Enterが効かなくなる(前のH3で説明したプロトコルの中継問題が発生する)ため、「なんかおかしい…」と感じたときはターミナルの構成を確認してみましょう。
📌 ターミナル環境別の改行キー比較
| 環境 | 改行キー | 注意点 |
|---|---|---|
| 通常のターミナル + Codex | Ctrl + J | 現在の標準仕様 |
| Ghostty + Codex | Shift + Enter | 例外的に動作する |
| tmux + Codex | Ctrl + J | Shift+Enterは中継されない |
| tmux + .tmux.conf設定済み | Shift + Enter / Ctrl + J | リマップにより復活 |
環境によって動作が変わるという点は、特にチームでCodexを使う場合に混乱の原因になりやすいため、チーム内で使用ターミナルの統一やキーバインドのルール共有をしておくことをおすすめします。
Codex 改行に関連する文字コードとWindows環境の注意点

- 文字コードで改行を表すコードはLFとCRLFの2種類がある
- VSCodeで改行文字のコードを確認・変更するには右下ステータスバーを使う
- WindowsネイティブでCodexを使うと改行コードのトラブルが起きやすい
- GitのCRLF問題を回避するには.gitattributesの設定が有効
- Codex入門として知っておきたいAGENTS.mdとセッション操作の基礎
- WindowsとWSLでCodexを使い分けるポイントは開発内容次第
- 総括:codex 改行のまとめ
文字コードで改行を表すコードはLFとCRLFの2種類がある

「文字コードで改行を表すコードは?」という疑問を持っている方も多いはずです。プログラミングや開発環境を触っていると必ず出てくる概念なので、ここで整理しておきましょう。
改行を表す文字コードには主に2種類あります。
📋 改行コードの種類と対応OS
| 改行コード | 正式名称 | 主な使用環境 | 16進数表現 |
|---|---|---|---|
| LF | Line Feed(ラインフィード) | Linux / macOS / Unix | 0x0A |
| CRLF | Carriage Return + Line Feed | Windows | 0x0D 0x0A |
| CR | Carriage Return(のみ) | 旧Macintosh(現在はほぼ使われない) | 0x0D |
LF(Line Feed) は「次の行に移動する」という意味の制御文字で、Linuxや macOSで標準的に使われます。CRLF は「行の先頭に戻ってから次の行へ進む」という2文字の組み合わせで、Windowsで標準的に使われます。
「WindowsはCRLF、LinuxはLFが基本です。この違いで、Gitの差分が不要に増えることがあります。」
(引用元:https://note.com/ojickiku/n/naf3495dc36b2)
Codexを使った開発において、この改行コードの違いは非常に重要です。WindowsネイティブのCodexを使ってファイルを生成・編集すると、知らずのうちにCRLFが混入することがあり、Linux環境でのビルドやGitの差分表示に悪影響を与えることがあります。
VSCodeで改行文字のコードを確認・変更するには右下ステータスバーを使う

「VSCodeで改行文字のコードは?」という疑問への答えも整理しておきます。Visual Studio Code(VSCode)では、画面右下のステータスバーに現在のファイルの改行コードが表示されています。
📌 VSCodeで改行コードを確認・変更する手順
| 手順 | 操作内容 |
|---|---|
| ① 確認する | ファイルを開いた状態で右下ステータスバーを見る(「LF」または「CRLF」と表示される) |
| ② クリックする | 表示されている「LF」または「CRLF」の文字をクリックする |
| ③ 変更する | ポップアップメニューから「LF」または「CRLF」を選択する |
これだけで現在のファイルの改行コードを変換できます。Codexが生成したファイルを確認する際は、まずこの方法で改行コードをチェックする習慣をつけておくと安心です。
VSCodeには.editorconfigファイルを使って、プロジェクト全体の改行コードを統一する方法もあります。チーム開発の場合は、このファイルをリポジトリに含めておくことで、メンバー間の環境差による改行コードの不一致を防げます。
# .editorconfigの例
root = true
[*]
end_of_line = lf
charset = utf-8
WindowsネイティブでCodexを使うと改行コードのトラブルが起きやすい

Windowsネイティブ環境でCodex CLIを使う場合、改行コードに関するトラブルが発生しやすいことが報告されています。
「WindowsはCRLF、LinuxはLFが基本です。この違いで、Gitの差分が不要に増えることがあります。普段から差分をきれいに見たい人ほど、この点は気になりやすいと思います。」
(引用元:https://note.com/ojickiku/n/naf3495dc36b2)
また、あるユーザーの報告では、Claude Code(WindowsでのAI CLIツール)を使った際に「Windowsでの改行問題:意図通りに改行できず生産性低下」という問題が発生したとされています。
「Windows相性:改行ミスが激減し操作感が素直。」(Codex CLIに移行した結果として)
(引用元:https://zenn.dev/zuzuzu/articles/claude_code_to_codex_cli)
このように、WindowsでのAI CLIツールの改行問題は一部のユーザーにとって切実な問題であり、Codex CLIへの移行を決めた理由の一つになっているケースもあります。
📋 Windows環境でのCodex利用における主な注意点
| 注意点 | 詳細 | 対策 |
|---|---|---|
| 改行コードの違い | CRLFとLFの混在でGit差分が増える | .gitattributesでLFに統一 |
| 日本語文字列の扱い | 文字コード(UTF-8/Shift-JIS)の影響 | ターミナルをUTF-8に設定 |
| 体感の重さ | WSLより重く感じる場合がある | WSLへの切り替えを検討 |
GitのCRLF問題を回避するには.gitattributesの設定が有効

Codexを使ったコード開発において、WindowsとLinux/macOSが混在するチーム環境では、Gitの改行コード問題が特に深刻になりやすいです。ファイルを変更していないのにGitが大量の差分を検出してしまう、という現象はほぼすべてCRLF/LF混在が原因です。
この問題を根本から解決する最も確実な方法は、リポジトリのルートに.gitattributesファイルを置くことです。
📌 推奨する.gitattributesの設定例
# すべてのテキストファイルをLFで管理
* text=auto eol=lf
# バイナリファイルは変換しない
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.zip binary
*.exe binary
text=auto eol=lfと設定することで、Gitがテキストファイルをリポジトリに保存する際に自動的にLFに変換し、チェックアウト時は各OSのデフォルト改行コードに変換するようになります。
また、Gitのグローバル設定としてcore.autocrlfを適切に設定する方法もあります。
📋 core.autocrlf の設定値と挙動
| 設定値 | コミット時 | チェックアウト時 | 推奨環境 |
|---|---|---|---|
| true | CRLF → LF に変換 | LF → CRLF に変換 | Windows(LFリポジトリとの共存) |
| input | CRLF → LF に変換 | 変換しない | Linux / macOS |
| false | 変換しない | 変換しない | 変換を手動管理したい場合 |
Codexを使って生成されたコードがWindowsでCRLF混入している場合は、これらの設定を見直すことで、チーム全体のGit差分をきれいに保てます。
Codex入門として知っておきたいAGENTS.mdとセッション操作の基礎

「Codex 入門」として押さえておきたい基礎知識もここで整理します。Codex CLIを使い始めるにあたり、改行操作だけでなく、プロジェクトへの指示ファイルの設定方法も理解しておくと作業効率が大幅に上がります。
Codex CLIでは、AGENTS.mdというファイルにプロジェクトの情報やルールを書いておくと、セッションごとにその内容が自動で読み込まれます。Claude CodeのCLAUDE.mdに相当するもので、Claude Codeから移行する場合はそのままファイル名を変えるだけで使えることも多いです。
「Codex は起動時に AGENTS.md を読み込み、ふるまいの基準として使う。(Claude Code の CLAUDE.md に近いもののようです)」
(引用元:https://zenn.dev/hokuto_tech/articles/97fa88f7805a23)
📋 AGENTS.mdが置ける場所と適用スコープ
| 場所 | 適用範囲 | 用途 |
|---|---|---|
~/.codex/AGENTS.md |
全プロジェクト共通 | 個人の共通ルール・スタイル |
リポジトリルートの AGENTS.md |
そのプロジェクト全体 | チーム共有のコーディング規約 |
サブディレクトリの AGENTS.md |
そのフォルダ以下 | モジュール固有の注意事項 |
複数のAGENTS.mdが見つかった場合は、グローバル→リポジトリルート→カレントディレクトリの順にマージして利用されます。下位フォルダの指示が優先されるため、特定のモジュールだけに特別なルールを適用したい場合はサブディレクトリに置くのが効果的です。
Codex入門のもう一つのポイントとして、セッション開始時の/initコマンドがあります。これを実行することでプロジェクトのファイル構成を解析し、AGENTS.mdのテンプレートを自動生成してくれます。初めてのプロジェクトに導入するときに非常に便利です。
WindowsとWSLでCodexを使い分けるポイントは開発内容次第

Codexをどの環境で使うかという問いに対して、結論はシンプルです。「Windowsでも使えるが、用途によってはWSLのほうが安定」というのが現実的な評価です。
「CodexはWindowsネイティブでも使えます。しかも、以前よりかなり現実的になっています。ただし、開発でしっかり使うなら、文字コードや改行コードなど、Windows特有の注意点はまだ意識したほうがいいです。」
(引用元:https://note.com/ojickiku/n/naf3495dc36b2)
Windows向けのツールを開発している場合は、Windowsネイティブで開発環境を統一したほうがパスや改行コードの差を意識せずに済むメリットがあります。一方で、LinuxサーバーへのデプロイやGit差分の管理を重視する場合はWSLのほうが安定する傾向があります。
📋 WindowsネイティブとWSLの使い分け基準
| シチュエーション | 推奨環境 | 理由 |
|---|---|---|
| まず試してみたい | Windowsネイティブ | セットアップが手軽 |
| Windows向けツールを開発 | Windowsネイティブ | 環境を統一できる |
| 日本語ファイルを多用する | WSL | 文字コード問題が少ない |
| Git差分をきれいに保ちたい | WSL | CRLF問題が回避しやすい |
| Linux系ツールとの連携が多い | WSL | 相性がよい |
| 軽い修正が中心 | Windowsネイティブ | 十分に実用的 |
「CLI中心・Windows併用・ガイド重視の自分には Codex CLI が最適。手戻りの少なさとコストの素直さが決め手。」
(引用元:https://zenn.dev/zuzuzu/articles/claude_code_to_codex_cli)
どちらが絶対に正しいということはなく、自分の開発フローや対象プロジェクトの特性に合わせて選ぶことが大切です。チーム開発であればメンバー間で環境を統一し、.gitattributesを整備することで多くの問題を未然に防げます。
総括:codex 改行のまとめ

最後に記事のポイントをまとめます。
- Codex CLIでの改行は現在
Ctrl + Jが標準。Enterキーは送信になるので注意が必要である - MacのCodexもCtrl+Jに変更済み。バージョンv2.1.33以降ではShift+Enterは送信になる
- Claude Codeも同様にCtrl+Jに統一されており、主要AI CLIツール全体で標準化が進んでいる
- GhosttyターミナルだけはなぜかShift+Enterで改行できる例外が存在する
- tmuxを経由するとKitty keyboard protocolの中継が失敗し、Shift+Enterが効かなくなる
- tmux環境での解決策は
.tmux.confにエスケープシーケンスのリマップ設定を追加すること - IDEやターミナルがCtrl+Jを別機能(パネル切り替え等)に使っている場合はキーバインド競合に注意が必要である
- 文字コードとしての改行はLF(Linux/Mac)とCRLF(Windows)の2種類があり、Codexを使う開発では混在に注意すべきである
- Gitの改行コード問題には
.gitattributesでLF統一設定を行うのが最も確実な解決策である - WindowsネイティブでのCodex利用は実用的になってきているが、日本語ファイルや改行コードの問題ではWSLのほうが安定する場面がある
- Codex入門ではAGENTS.mdの活用と、
/init・/compact・/newなどのスラッシュコマンドを早めに覚えることが効率化の近道である - ツールや環境のバージョンによって挙動が変わりやすいため、改行操作で困ったら公式ドキュメントや最新情報を最初に確認するのが正しいアプローチである
記事作成にあたり参考にさせて頂いたサイト
- https://x.com/combatsheep/status/1961465496529678344
- https://qiita.com/hrfm1623/items/e03544f858d6815c2096
- https://x.com/nuits_jp/status/1975021609833656708
- https://www.reddit.com/r/codex/comments/1ngn8na/how_to_make_codex_respect_crlf_line_endings_when/?tl=ja
- https://zenn.dev/hokuto_tech/articles/97fa88f7805a23
- https://kurochan-note.hatenablog.jp/entry/2026/02/03/074837
- https://zenn.dev/zuzuzu/articles/claude_code_to_codex_cli
- https://note.com/ojickiku/n/naf3495dc36b2
- https://zenn.dev/forward/articles/be34c4ee9fd4bf
- https://mirumi.me/coding-agent-tools/
各サイト運営者様へ
有益な情報をご公開いただき、誠にありがとうございます。
感謝の意を込め、このリンクはSEO効果がある形で設置させていただいております。
※リンクには nofollow 属性を付与しておりませんので、一定のSEO効果が見込まれるなど、サイト運営者様にとってもメリットとなれば幸いです。
当サイトは、インターネット上に散在する有益な情報を収集し、要約・編集してわかりやすくお届けすることを目的としたメディアです。
引用や参照の方法に不備、あるいはご不快に感じられる点がございましたら、お問い合わせフォームよりご連絡ください。
今後とも、どうぞよろしくお願いいたします。

