development·

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 で改行する方法|Shift+Enter が効かないときの直し方(VS Code・tmux・Windows)

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+EnterShift+EnteriTerm2・WezTerm・Ghostty・Kitty・Warp・Apple Terminal・Windows Terminal ではそのまま。ほかは次の節を参照
Option キー(Mac)Option+EntermacOS で「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)の対応表を、図にまとめました。

ターミナル別に、Claude Code で改行に使えるキーを示した表の図。Ctrl+J と「\ のあとに Enter」は、どのターミナルでも使える。Shift+Enter は、Ghostty・Kitty・iTerm2・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回実行すると使える。gnome-terminal と JetBrains IDE では使えない。tmux の中では ~/.tmux.conf に設定を追加すると使える

ターミナル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 TerminalEnable Option+Enter key binding for newlines and disable the audible bell (skipped in screen-reader mode)Option+Enter で改行できるようにし、警告音を止める(スクリーンリーダーモードでは警告音はそのまま)
Ghostty・Kitty・Warp・WezTerm・Windows TerminalCheck terminal setup (Shift+Enter is natively supported in …)確認のみ。Shift+Enter は最初から使える
iTerm2Enable iTerm2 clipboard access for /copy/copy のためのクリップボード許可。Shift+Enter は最初から使える
上記以外(VS Code など)Install Shift+Enter key binding for newlinesShift+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 に設定なしで対応しています。それでも送信になる場合は、次の順に確かめます。

  1. Windows Terminal で動かしているか。公式の対応表に載っていないターミナルアプリでは、Shift+Enter が使える保証はない
  2. Claude Code が新しいか。v2.1.89(2026年4月1日)で「Windows Terminal Preview 1.25 で Shift+Enter が送信になる」問題が直っている
  3. それでもだめなら 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 キーをメタキーとして使用」にチェック。初回起動時のターミナル設定の案内を受け入れていれば、すでに有効
iTerm2Settings → 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+EnterEnter拡張の設定 useCtrlEnterToSend をオンにすると、送信が Ctrl+Enter(Mac は Cmd+Enter)に変わる
VS Code・Cursor の統合ターミナルで claude を実行Ctrl+J、/terminal-setup 後は Shift+EnterEnter前の節を参照
JetBrains IDECtrl+J、\ + Enter。Mac はプラグイン設定で Option+Enter も可Enterプラグインはターミナルで動く
デスクトップアプリ(Code タブ)Shift+EnterEnterkeybindings.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 のインストールと初期設定を参照してください。

参考:

Claude Code をチームや自社の開発に広げるなら

Claude Code を個人の開発環境で使っていて、手元で解決できたなら、ここまでで十分です。

チームへの展開や、開発そのものの依頼を検討している立場の方は、次の窓口から相談できます。

初回の壁打ち(30分)は無料です。

関連記事