Claude Code で改行する方法|Shift+Enter が効かないときの直し方(VS Code・tmux・Windows)
Claude Code の入力欄で改行するには、どのターミナルでも Ctrl+J か「\」のあとに Enter が使えます。Shift+Enter はターミナルによって、そのまま使える・/terminal-setup が必要・使えないに分かれます。VS Code・Cursor・tmux・JetBrains・Windows・デスクトップアプリ別の改行方法と、Enter で改行・別のキーで送信に入れ替える設定、日本語入力での誤送信の防ぎ方を公式ドキュメントで解説します。

Claude Code の入力欄では、Enter を押すとその場で送信されます。送信せずに改行したいときは、次のどちらかを使います。
Ctrl+Jを押す- 行の最後に
\(バックスラッシュ)を入力してから Enter を押す
この2つは、ターミナルの種類に関係なく、設定なしで使えます。チャットアプリと同じ Shift+Enter で改行したい場合は、使っているターミナルによって「そのまま使える」「/terminal-setup を1回実行すれば使える」「使えない」に分かれます。
本記事の情報について:2026年10月4日時点の Claude Code 公式ドキュメント(Configure your terminal、Interactive mode、Keybindings、VS Code、JetBrains)と CHANGELOG(最新は v2.1.289)、anthropics/claude-code の issue にもとづいています。/terminal-setup がターミナルごとに何をするかは、編集部が Claude Code v2.1.287 の実行ファイルに含まれる説明文で確かめました。公式の説明と利用者の報告(issue)は書き分けています。
この記事を読むとわかること
- どのターミナルでも使える改行キーと、Shift+Enter が使えるターミナルの一覧
- Shift+Enter で改行できず送信されてしまうときの直し方(VS Code・Cursor・Zed・tmux・JetBrains・Windows)
- VS Code 拡張・デスクトップアプリなど、ターミナル以外の画面での改行
- Enter で改行し、別のキーで送信するように入れ替える設定と、その注意点
- 長い文章を入力するときと、日本語入力で誤送信を防ぐときのコツ
どのターミナルでも使える改行キー
公式ドキュメント(Interactive mode)が挙げている改行の方法は、次の5つです。
| 方法 | 押すキー | 使える環境 |
|---|---|---|
| バックスラッシュ | \ を入力してから Enter | すべてのターミナル |
| Control シーケンス | Ctrl+J | すべてのターミナル(設定不要) |
| Shift+Enter | Shift+Enter | iTerm2・WezTerm・Ghostty・Kitty・Warp・Apple Terminal・Windows Terminal ではそのまま。ほかは次の節を参照 |
| Option キー(Mac) | Option+Enter | macOS で「Option をメタキーとして使用」を有効にしたあと |
| 貼り付け | 複数行のテキストをそのまま貼り付ける | コードやログを入れるとき |
迷ったら Ctrl+J を覚えておけば、どの環境でも困りません。Mac でも Cmd ではなく Control キーを使います。日本語配列の Mac で ¥ キーを押すと ¥ が入る設定になっている場合は、Option+¥ で \ を入力します。
Ctrl+J は、Claude Code のキー設定で chat:newline(送信せずに改行する)という操作に割り当てられている既定のキーです(Keybindings)。あとで説明する入れ替えの設定も、この chat:newline を使います。
Shift+Enter が使えるかはターミナルで決まる
Shift+Enter で改行できるかどうかは、Claude Code ではなく、ターミナルが Shift+Enter と Enter を区別して Claude Code に伝えられるかで決まります。公式ドキュメント(Enter multiline prompts)の対応表を、図にまとめました。
| ターミナル | Shift+Enter での改行 |
|---|---|
| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal(ターミナル.app)、Windows Terminal | 設定なしで使える |
| foot、Alacritty 0.16 以降など、kitty キーボードプロトコルに対応したターミナル | 設定なしで使える。Claude Code v2.1.269 以降が必要 |
| VS Code・Cursor・Devin Desktop・Zed の統合ターミナル、Alacritty 0.16 未満 | /terminal-setup を1回実行する |
| gnome-terminal、JetBrains IDE(PyCharm・Android Studio など) | 使えない。Ctrl+J か \ + Enter を使う |
| tmux の中 | 外側のターミナルが対応していても、~/.tmux.conf の設定が必要 |
foot・Alacritty 0.16 以降の行は、v2.1.269(2026年9月11日)の CHANGELOG で「kitty キーボードの問い合わせに応答するターミナルで Shift+Enter が使えるようになった」と記載されています。それより古い Claude Code では、これらのターミナルでも Shift+Enter は送信になります。claude --version でバージョンを確かめ、古ければ claude update で更新してください。
Shift+Enter で改行できないときの直し方
VS Code・Cursor・Zed の統合ターミナル:/terminal-setup を実行する
VS Code・Cursor・Devin Desktop の統合ターミナル、Zed、Alacritty 0.16 未満では、Claude Code の中で次のコマンドを1回実行します。
/terminal-setup
/terminal-setup は、そのターミナルの設定ファイルに Shift+Enter のキー割り当てを書き込みます。初回は Installed VSCode terminal Shift+Enter key binding のような確認が表示されます。すでに割り当てがある場合は VSCode terminal Shift+Enter key binding already configured と表示され、何も変更されません。
公式ドキュメントが挙げている、ほかに変わる設定は次のとおりです。
- VS Code・Cursor・Devin Desktop:統合ターミナルの文字化けを防ぐために
terminal.integrated.gpuAccelerationを"off"にし、全画面表示でのスクロールをなめらかにするためにterminal.integrated.mouseWheelScrollSensitivityを設定する。GPU アクセラレーションを元に戻すには"auto"に戻してウィンドウを再読み込みする - Zed:
keymap.jsonに Shift+Enter の割り当てを追記する。すでに別の割り当てがある場合は、先に同じフォルダへkeymap.json.1a2b3c4d.bakのような名前でバックアップを作る。読み込みや検証に失敗したときはファイルを変えず、追記すべき内容を表示する
/terminal-setup は tmux や screen の中ではなく、外側のターミナルで直接実行してください。外側のターミナルの設定ファイルに書き込む必要があるためです。
/terminal-setup は、ターミナルによって表示も役割も変わります。編集部が v2.1.287 の実行ファイルで確かめた、コマンド一覧に出る説明は次のとおりでした。
| 実行したターミナル | /terminal-setup の説明(原文) | 意味 |
|---|---|---|
| Apple Terminal | Enable Option+Enter key binding for newlines and disable the audible bell (skipped in screen-reader mode) | Option+Enter で改行できるようにし、警告音を止める(スクリーンリーダーモードでは警告音はそのまま) |
| Ghostty・Kitty・Warp・WezTerm・Windows Terminal | Check terminal setup (Shift+Enter is natively supported in …) | 確認のみ。Shift+Enter は最初から使える |
| iTerm2 | Enable iTerm2 clipboard access for /copy | /copy のためのクリップボード許可。Shift+Enter は最初から使える |
| 上記以外(VS Code など) | Install Shift+Enter key binding for newlines | Shift+Enter の割り当てを入れる |
tmux の中で使っている
tmux の中では、外側のターミナルが Shift+Enter に対応していても、既定では Shift+Enter が送信になります。公式ドキュメント(Configure tmux)のとおり、~/.tmux.conf に次の3行を追加します。
set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
追加したら、tmux source-file ~/.tmux.conf で動いている tmux に反映します。extended-keys の2行が Shift+Enter と Enter を区別させるための設定で、allow-passthrough は Claude Code の通知や進み具合の表示を外側のターミナルに届けるための設定です。
JetBrains IDE・gnome-terminal では Ctrl+J を使う
PyCharm・IntelliJ IDEA・Android Studio などの JetBrains IDE のターミナルと、gnome-terminal では、Shift+Enter は使えません。Ctrl+J か \ + Enter を使います。
macOS の JetBrains IDE では、Claude Code プラグインの設定(Settings → Tools → Claude Code [Beta])にある Enable using Option+Enter for multi-line prompts を有効にすると、Option+Enter で改行できます(JetBrains)。変更はターミナルを開き直すと反映されます。
Windows で Shift+Enter が送信になる
公式の対応表では、Windows Terminal は Shift+Enter に設定なしで対応しています。それでも送信になる場合は、次の順に確かめます。
- Windows Terminal で動かしているか。公式の対応表に載っていないターミナルアプリでは、Shift+Enter が使える保証はない
- Claude Code が新しいか。v2.1.89(2026年4月1日)で「Windows Terminal Preview 1.25 で Shift+Enter が送信になる」問題が直っている
- それでもだめなら
Ctrl+Jか\+ Enter を使う
issue #92771 では、Windows で Shift+Enter が Enter と区別されないという報告が出ています(2026年10月4日時点で未解決)。報告者は xterm.js ベースのターミナル(Netcatty)で再現し、原因はターミナルではなく Windows 上の Claude Code の実行環境が修飾キーを落とすことだと主張しています。公式は Windows Terminal を対応としているので、すべての環境で起きるとは限りません。この場合は、下で説明するキーの入れ替えでも Shift+Enter に操作を割り当てられないため、Ctrl+J を使うのが確実です。
Mac で Option+Enter を使えるようにする
Option+Enter で改行したい場合は、ターミナル側で「Option キーをメタキーとして送る」設定を有効にします(Enable Option key shortcuts on macOS)。
| ターミナル | 設定する場所 |
|---|---|
| Apple Terminal | 設定 → プロファイル → キーボード →「Option キーをメタキーとして使用」にチェック。初回起動時のターミナル設定の案内を受け入れていれば、すでに有効 |
| iTerm2 | Settings → Profiles → Keys → General で、Left Option key と Right Option key を「Esc+」にする |
| VS Code | 設定に "terminal.integrated.macOptionIsMeta": true を追加する |
この設定を有効にすると、Option+P(モデルの切り替え)など、Option キーを使うほかのショートカットも使えるようになります。
ターミナル以外の画面での改行
Claude Code はターミナル以外の画面でも使えます。画面によって改行のキーと設定が違います。
| 画面 | 改行 | 送信 | 補足 |
|---|---|---|---|
| VS Code 拡張(Claude Code のパネル) | Shift+Enter | Enter | 拡張の設定 useCtrlEnterToSend をオンにすると、送信が Ctrl+Enter(Mac は Cmd+Enter)に変わる |
VS Code・Cursor の統合ターミナルで claude を実行 | Ctrl+J、/terminal-setup 後は Shift+Enter | Enter | 前の節を参照 |
| JetBrains IDE | Ctrl+J、\ + Enter。Mac はプラグイン設定で Option+Enter も可 | Enter | プラグインはターミナルで動く |
| デスクトップアプリ(Code タブ) | Shift+Enter | Enter | keybindings.json は効かないという報告がある(後述) |
VS Code 拡張のパネルでは、Shift+Enter は Claude からの質問ダイアログの「Other」(自由記述)欄でも改行として使えます(VS Code)。Enter での誤送信が多い場合は、VS Code の設定で「Claude Code: Use Ctrl Enter To Send」(useCtrlEnterToSend)をオンにします。
デスクトップアプリについては、公式ドキュメントに入力欄の改行キーの記載がありません。issue #89673(2026年8月26日起票、10月4日時点で未解決)では、「デスクトップアプリでは Enter は常に送信で、改行は Shift+Enter だけ。~/.claude/keybindings.json の設定はターミナルでは効くが、デスクトップアプリの入力欄では無視される」と報告されています。
Enter で改行し、別のキーで送信する
長い指示を書くことが多い人は、Enter を改行、別のキーを送信に入れ替えると、書きかけで送ってしまう事故を減らせます。ターミナル版の Claude Code では、キー設定ファイル ~/.claude/keybindings.json で chat:newline(改行)と chat:submit(送信)の割り当てを変えます(Keybindings)。
Claude Code の中で /keybindings を実行すると、設定ファイルが作られて開きます。bindings に次の内容を書きます。
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"enter": "chat:newline",
"meta+enter": "chat:submit"
}
}
]
}
この例では、Enter で改行し、Option+Enter(Mac。Windows・Linux では Alt+Enter)で送信します。meta は Mac では Option、Windows・Linux では Alt を指します。保存すると、Claude Code を再起動しなくても反映されます。
入れ替えるときの注意点は次の4つです。
- 送信キーには、自分のターミナルで確実に届くキーを選ぶ:送信を
shift+enterやctrl+enterにしても、ターミナルがそのキーを Enter と区別できなければ送信できなくなります。Mac でmeta+enterを使うなら、前の節の「Option をメタキーとして使用」の設定が必要です - Windows では修飾キーつきの Enter が届かないことがある:issue #87888(10月4日時点で未解決)では、Windows Terminal で Enter を改行にしたところ、
ctrl+enter・shift+enter・ctrl+jを送信に割り当てても効かず、ctrl+sだけが送信として動いたと報告されています。ctrl+sは既定で「入力中の文章を一時退避する」(chat:stash)に割り当てられているので、上書きになる点に注意してください - 古いバージョンでは送信キーが効かない:Enter を改行に変えたときに、
meta+enterなどほかの送信キーが効かない不具合は、v2.1.141(2026年5月13日)で直っています - うまく動かないときは
--debugで確かめる:Claude Code は設定ファイルの書き間違い(JSON の誤り、修飾キーのつづり間違い、存在しない操作名)を検出すると、デバッグログに警告を書きます。claude --debugで起動すると確認できます
Ctrl+C(中断)、Ctrl+D(終了)、Ctrl+M(常に Enter として扱われる)などは割り当てを変えられません。
元に戻したいときは、追加した2行を消して保存します。
長い文章を入力するときは外部エディタを使う
何十行にもなる指示や、箇条書きの多い仕様を書くときは、入力欄で改行を重ねるより、外部エディタで書いて戻すほうが楽です。
入力欄で Ctrl+G(または Ctrl+X のあと Ctrl+E)を押すと、いま入力中の文章が既定のテキストエディタで開きます(chat:externalEditor)。エディタで書いて保存し、閉じると、その内容が入力欄に戻ります。/config で Show last response in external editor をオンにすると、Claude の直前の返答が # つきのコメントとして先頭に入るので、返答を見ながら指示を書けます(Interactive mode)。
すでにどこかに書いた文章やコード、エラーログを入れたいときは、そのまま貼り付けます。複数行のテキストも、貼り付けた時点では送信されません。
plan モードで Claude が出した計画を書き直すときも、同じ Ctrl+G で計画をエディタで開けます。計画を立ててから実装させる使い方は、Claude Code の plan モード(プランモード)の使い方で解説しています。
日本語入力(IME)で誤送信しないために
日本語入力では、漢字の変換を確定するときにも Enter を押します。確定の Enter を押したつもりが、もう一度 Enter を押してしまい、書きかけの指示が送られる、という失敗が起きやすくなります。
issue でも、日本語入力の Enter にかかわる報告が複数出ています。
- デスクトップアプリ(Windows)で、変換確定の Enter を2回押してしまい誤送信する。
keybindings.jsonで Enter を改行にしても、デスクトップアプリでは反映されない(#68781。2026年6月19日に重複としてクローズ。修正されたという記載はない) - VS Code 拡張で、plan への行コメントを入力中に、変換確定の Enter でコメントが送られてしまう(#85915、10月4日時点で未解決)
誤送信が多い場合は、使っている画面に合わせて次の対策を取ります。
| 画面 | 対策 |
|---|---|
| ターミナル | keybindings.json で Enter を改行、別のキーを送信にする(前の節) |
| VS Code 拡張 | useCtrlEnterToSend をオンにして、送信を Ctrl+Enter(Mac は Cmd+Enter)にする |
| デスクトップアプリ | 公式ドキュメントに送信キーを変える設定はなく、変更を求める issue(#89673)も未解決。長い文章は別のエディタで書いて貼り付ける |
書きかけで送ってしまったときは、Esc を押すと Claude の応答を止められます。止めたあと、続きを書いて送り直してください。送る前に入力欄の文章をまるごと消したいときは、Esc を2回続けて押します。消した文章は履歴に残るので、↑ キーで呼び戻せます(Interactive mode)。
日本語でのプロンプトの書き方や CLAUDE.md の設計は、Claude Code 日本語環境のベストプラクティスにまとめています。キーボードで打つ代わりに話して入力したい場合は、Claude Code の音声入力(/voice)の使い方も参考にしてください。
よくある質問
まとめ
- Claude Code の入力欄は Enter で送信。改行は
Ctrl+Jか\+ Enter が、どのターミナルでも設定なしで使える - Shift+Enter は、iTerm2・Ghostty・Kitty・WezTerm・Warp・Apple Terminal・Windows Terminal ならそのまま使える。foot・Alacritty 0.16 以降は v2.1.269 以降で使える
- VS Code・Cursor・Devin Desktop・Zed の統合ターミナルと Alacritty 0.16 未満は、外側のターミナルで
/terminal-setupを1回実行する。tmux の中は~/.tmux.confに3行を追加する。JetBrains IDE と gnome-terminal はCtrl+Jを使う - VS Code 拡張のパネルとデスクトップアプリは
Shift+Enterで改行。VS Code 拡張はuseCtrlEnterToSendで送信キーを変えられる - ターミナル版は
~/.claude/keybindings.jsonで Enter を改行、別のキーを送信に入れ替えられる。送信キーは、自分のターミナルで届くキーを選ぶ - 長い文章は
Ctrl+Gで外部エディタを開いて書くと楽
そのほかの Claude Code のつまずきは、Claude Code トラブルシューティング完全ガイドで症状やエラー文から探せます。インストールと初期設定の流れはClaude Code のインストールと初期設定を参照してください。
参考:
- https://code.claude.com/docs/en/terminal-config#enter-multiline-prompts
- https://code.claude.com/docs/en/terminal-config#configure-tmux
- https://code.claude.com/docs/en/terminal-config#enable-option-key-shortcuts-on-macos
- https://code.claude.com/docs/en/interactive-mode#multiline-input
- https://code.claude.com/docs/en/keybindings
- https://code.claude.com/docs/en/vs-code
- https://code.claude.com/docs/en/jetbrains#plugin-settings
- https://code.claude.com/docs/en/changelog
- https://github.com/anthropics/claude-code/issues/89673
- https://github.com/anthropics/claude-code/issues/87888
- https://github.com/anthropics/claude-code/issues/92771
- https://github.com/anthropics/claude-code/issues/68781
- https://github.com/anthropics/claude-code/issues/85915
Claude Code をチームや自社の開発に広げるなら
Claude Code を個人の開発環境で使っていて、手元で解決できたなら、ここまでで十分です。
チームへの展開や、開発そのものの依頼を検討している立場の方は、次の窓口から相談できます。
初回の壁打ち(30分)は無料です。


