Claude Code の改行方法|複数行プロンプトを入力する 5 つの手順
Claude Code でプロンプトに改行を入れる 5 つの方法を解説。Enter で送信されてしまう問題を解決するバックスラッシュ継続・ペースト・ファイル渡し・ヒアドキュメント・CLAUDE.md 活用のテクニックをコード例付きで紹介します。
Claude Code を使い始めてすぐにぶつかるのが「Enter キーを押すとプロンプトが送信されてしまう」問題です。複数の条件を箇条書きで指示したいのに、改行するたびに実行されてしまう。本記事ではこの問題を解決する 5 つの改行テクニック を、実際のコード例とセットで解説します。
1. なぜ Claude Code の改行が難しいのか
1-1. インタラクティブモードの入力の仕組み
Claude Code を claude コマンドで起動すると、ターミナルはインタラクティブモードになります。このモードでは Enter キーが「入力確定=送信」 として扱われるため、通常のテキストエディタのように Enter で改行を挿入することができません。
> Claude Code を起動した直後の状態
┌─────────────────────────────────────┐
│ Human: ▌ ← ここで Enter = 即送信 │
└─────────────────────────────────────┘
これは CLI ツール一般の仕様であり、Claude Code 固有のバグではありません。しかし「複数の条件を丁寧に列挙したい」「手順を番号付きで指示したい」という場面では確かに不便です。以下の 5 つの方法でこの制約を回避できます。
2. 方法①:バックスラッシュ(\)で行を継続する
2-1. バックスラッシュ改行の具体的な使い方
最もシンプルな方法は、行末に バックスラッシュ(\) を入力してから Enter を押す方法です。シェルのライン継続と同じ仕組みで、Claude Code のインタラクティブモードでも利用できます(執筆時点の動作。最新の挙動は Anthropic 公式ドキュメント を確認してください)。
# バックスラッシュ + Enter で改行しながら入力を継続する例
Human: 以下の 3 点を実装してください。\
1. ユーザー認証のバリデーションを追加\
2. エラーメッセージを日本語に変更\
3. ログイン後のリダイレクト先を /dashboard に設定
メリット: ターミナルを離れずに済む / 追加ツール不要
デメリット: 長い指示には向かない / \ を忘れると即送信
3. 方法②:外部テキストをそのままペーストする
3-1. ペーストを使った複数行入力の手順
多くのターミナルエミュレータ(iTerm2・Warp・macOS Terminal など)は、クリップボードから 複数行テキストをそのままペースト できます。
手順は次のとおりです。
- VS Code・メモ帳・任意のエディタで指示テキストを書く
- 全文をコピー(Cmd+A → Cmd+C)
- Claude Code のプロンプトにペースト(Cmd+V)
- Enter で送信
# エディタで書く指示の例(コピーしてペーストするだけ)
以下のリファクタリングをお願いします。
- 関数名を camelCase に統一(snake_case は使わない)
- コメントは日本語で追加
- 1 関数 50 行以内を目標に分割
- 型定義は TypeScript strict モードに準拠
対象ファイル: src/utils/auth.ts
メリット: テキストエディタの全機能(スペルチェック・補完)が使える
デメリット: ターミナルとエディタを行き来する手間がある
4. 方法③:--print フラグ + ファイルで渡す
4-1. ファイルを使ったプロンプト渡しの実装例
--print(短縮形 -p)フラグを使うと、Claude Code を 非インタラクティブモード で実行できます。プロンプトをファイルに書いておいてパイプで渡す方法が、長大な指示には最も安定しています。
# プロンプトをファイルに書いておく(改行も自由に使える)
cat > prompt.txt << 'EOF'
以下の作業をすべて実行してください。
## タスク 1: テスト追加
- src/utils/auth.ts の全関数にユニットテストを追加
- jest を使用
- カバレッジ 80% 以上を目標にする
## タスク 2: ドキュメント更新
- README.md に認証フローの図(Mermaid)を追加
- 各関数の JSDoc コメントを英語で補完
## タスク 3: 型の厳格化
- TypeScript strict オプションをオンにする
- any 型を排除して適切な型を付与
EOF
# ファイルの中身をパイプで渡す
cat prompt.txt | claude --print
CI/CD や自動化スクリプトに組み込む場合は --print が標準パターンです。詳しいフラグの一覧は Claude Code 使い方 完全ガイド で確認できます。
5. 方法④:ヒアドキュメント(heredoc)でスクリプトから渡す
5-1. heredoc を使った複数行プロンプトの書き方
Bash スクリプトの中で複数行プロンプトを埋め込む場合は ヒアドキュメント(heredoc)が最もクリーンです。
#!/bin/bash
# run-review.sh: コードレビューを自動実行するスクリプト
TARGET_FILE="${1:-src/index.ts}"
claude --print "$(cat <<'EOF'
以下のコードを 3 つの観点でレビューしてください。
【観点 1】セキュリティ
- SQLインジェクション・XSS・認証バイパスのリスクを確認
- ハードコードされた秘密情報がないか確認
【観点 2】パフォーマンス
- N+1 クエリ問題の有無
- 不必要なループや再計算がないか
【観点 3】可読性
- 関数が 50 行を超えていないか
- 変数名・関数名が意図を表しているか
対象: $TARGET_FILE
EOF
)"
# 実行方法
chmod +x run-review.sh
./run-review.sh src/api/users.ts
<<'EOF' のようにシングルクォートで囲むと、heredoc 内の $ や \ が展開されないため、Claude への指示文にそのまま $変数名 を書いても誤解されません。"$(cat <<'EOF' ..." パターンを使うとサブシェル展開で変数の混在も制御できます。
6. 方法⑤:CLAUDE.md にテンプレートを書く(最推奨)
6-1. CLAUDE.md を活用した長文指示の永続化
同じ複数行の指示を繰り返し使う場面では、プロジェクトルートの CLAUDE.md に書いておくのが最も効率的です。Claude Code は起動時に自動でこのファイルを読み込み、プロジェクト固有のルールとして記憶します。
<!-- CLAUDE.md(プロジェクトルートに配置) -->
## コーディング規約
- 言語: TypeScript strict モード
- テストフレームワーク: Vitest
- コメント: 日本語で記述
- 関数: 1 関数 50 行以内
- ファイル: 1 ファイル 800 行以内
## コミットルール
- メッセージ形式: `<type>: <description>`
- type は feat / fix / refactor / docs / test / chore / perf のいずれか
- 日本語説明を body に追加すること
## セキュリティルール
- API キーは必ず環境変数から読み込む(ハードコード厳禁)
- ユーザー入力は Zod でバリデーション必須
CLAUDE.md に書いておけば毎回長文プロンプトを入力する必要がなく、「上記ルールを守りながらリファクタして」の一文で済みます。
6-2. 指示の粒度のコツ
CLAUDE.md に書く指示は「常に適用したい背景ルール」に絞るのがポイントです。タスクごとに変わる具体的な指示は、都度方法①〜④で渡す方が柔軟に運用できます。
7. よくある疑問と解決策
7-1. 改行が意図せず送信されてしまったとき
入力途中で誤って Enter を押してしまった場合は、送信された不完全な指示に対して 続きを補足するメッセージ を追加で送れます。Claude は前の会話コンテキストを持っているため、「続きを追加します:〇〇」と送れば理解してくれます。誤送信が多い場合は方法②(事前にエディタで書いてからペースト)への切り替えを検討してください。
7-2. Windows ターミナル(PowerShell / WSL2)での改行
Windows 環境では PowerShell の heredoc 記法が若干異なります。
# PowerShell: here-string 記法
$prompt = @"
以下を実装してください。
1. ログイン機能
2. JWT トークン検証
3. ロールベースアクセス制御
"@
$prompt | claude --print
WSL2 を使っている場合は bash の heredoc がそのまま使えます。
7-3. 長いプロンプトでコンテキストが膨らんだ場合
複雑な複数行指示を何度も送り続けるとコンテキストウィンドウが逼迫します。セッションが重くなってきたら /compact でコンテキストを要約・圧縮してから続きを進めましょう。Claude Code の基本操作は Claude Code 使い方 完全ガイド で確認できます。
まとめ:改行方法の選び方
| シーン | 推奨方法 |
|---|---|
| 数行程度の追加条件 | バックスラッシュ(\)継続 |
| 長文・箇条書き指示を一時的に送りたい | エディタで書いてペースト |
| シェルスクリプトに組み込む | --print + ファイル |
| CI/CD パイプラインに使う | heredoc + --print |
| 毎回使うプロジェクトルール | CLAUDE.md への永続化 |
複数行プロンプトを使いこなすことで、Claude への指示が格段に明確になり、手戻りが減ります。まずはバックスラッシュ継続から試してみて、慣れたら CLAUDE.md での永続化に移行するのがおすすめです。
Claude Code の基本的な使い方全般は Claude Code 完全ガイド で体系的に学べます。改行以外のコマンドや操作もあわせて確認してみてください。
