Ctrl+G(コントロール・ジー)

キーバインド
Ctrl+G
コントロール・ジー
入力欄に書きかけのプロンプトを、自分のパソコンに入っている文章編集アプリ(VS Code、vim、nanoなど)にそのまま渡して書き直すためのショートカット。Claude Code独自の短縮形で、Bashで馴染みのある「コマンドの後ろをエディタに移して書き直す」打ち方 Ctrl+X Ctrl+E と完全に同じ動きをする

Claude Codeを毎日触っていて、長めの指示文を書き直したい場面がよくある人向け

1メッセージで5行以上書きたい時、構造を確認しながら指示を書き換えたい時、Claudeの前回応答を見ながら次の指示を組み立てたい時に押す。/config の Show last response in external editor を ON にしておくと、応答が # 付きのコメント行で添えられて、保存時に自動で消える

Claude Codeの入力欄で Ctrl+G を押すと、いま入力欄に書いてある文字列をそのまま受け取った状態で外部エディタが立ち上がります。長い指示文を書く時に、ターミナルの1行入力で改行を重ねて消耗するのを避けるための仕組みです。

公式ドキュメントには Ctrl+GCtrl+X Ctrl+E が同じ機能として併記されています。前者がClaude Code独自の短縮形、後者はBashの入力欄で同じ動きをする伝統的な打ち方です。

噛み砕くと

普段ターミナルでメモを書く時、横長の1行に文字を詰め込むことになって、書き換えにも消すにも矢印キーを連打する羽目になります。Ctrl+Gは「いったん広い机に紙を移して、そっちで落ち着いて書こう」と切り替えるショートカットです。

机にあたるのが、自分のパソコンに入っている文章を書くためのアプリ。書き終わって閉じると、紙の内容がそのまま入力欄に戻ってきます。Claude Codeの入力欄でうろうろする時間がぐっと減ります。

大事な前提:どのアプリで開くかは $EDITOR で決まる

Claude Code自身は「どのアプリで開け」と決めません。決めるのは$EDITORという、パソコンが起動時に覚えてる設定値です。Ctrl+Gを押すと、Claude Codeは$EDITORに書かれているコマンドを呼び出して、そのアプリで一時ファイルを開きます。

確認方法は簡単で、ターミナルで次の1行を打ちます。

$ echo $EDITOR

何か文字列が返ってくれば設定済み、空っぽで何も返ってこなければ未設定です。例えば vimnanocode -w のような値が返ります。未設定の場合は vinano がいきなり立ち上がって、初見では「閉じ方が分からない」状態で固まることがあります。

「料理ブログ用のCLAUDE.md指示文を書き直す」を例に、実際の手順を見る

料理ブログ用に CLAUDE.md をClaude Codeに書かせている、と想像してください。これはプロジェクト用の覚え書きを保存しておくファイルです。最初の指示が雑だったので、Claudeが返してきた応答を見ながら200字超の書き直しをしたい場面です。

ステップ1: $EDITORを確認する

まず入力欄ではなく、Claude Codeを起動する前のターミナルでecho $EDITORを打ちます。返り値が空っぽならVS Codeを使う設定を仕込んでおきます。

$ export EDITOR='code -w'

-wを付けないとVS Codeはファイルを開いた直後に「終わったよ」とClaude Codeに返してしまい、まだこっちが書いている途中なのに入力欄が空っぽで戻ります。これが第一の落とし穴です。

ステップ2: /configでClaudeの前回応答を読みながら書ける設定にする

Claude Codeを起動して、入力欄で/configと打ちます。設定画面の中に「Show last response in external editor」という項目があるので、これをONにします。

ONにすると、エディタを開いた時にClaudeの前回応答が画面上部に#付きのコメント行として並びます。保存して閉じた瞬間にコメント行は自動で消えるので、入力欄に余計な文字列は残りません。公式の表現で「the comment block is stripped when you save」と書かれています。

ステップ3: 入力欄で雑に書き始める

とりあえず入力欄に「料理ブログのCLAUDE.md、もうちょい厚めに書き直して」と打ちます。このまま送ってもいいんですが、ここでCtrl+Gを押します。

ステップ4: 外部エディタが立ち上がる

VS Codeの新しいタブに、一時ファイルが開きます。先頭にClaudeの前回応答が#付きで並んでいて、その下に「料理ブログのCLAUDE.md、もうちょい厚めに書き直して」が入っています。

# 以下、Claudeの前回応答(保存時に自動削除されます)
# 料理ブログのCLAUDE.mdの雛形を生成しました。
# - ターゲット読者: 一人暮らしの自炊初心者
# - 1記事あたりの文字数: 1500字前後
# - 写真は手元のスマホ撮影、加工なし

料理ブログのCLAUDE.md、もうちょい厚めに書き直して

ステップ5: コメントを見ながら指示を書き直す

#のコメント部分を見ながら、その下の指示を200字超で書き直します。Claudeが先に提示した「一人暮らしの自炊初心者」「1500字」みたいな前提を引き継いで、さらに「想定する1日の閲覧数」「広告の方針」「禁止する言い回し」を追記する、みたいな調子です。

ここで初心者がやりがちな勘違いがあります。#から始まる行は保存時に消えるので問題ないのですが、コメント行の中で#を1個でも消すと、その行の以降は「コメントじゃない=消えない」と判定されてプロンプトに混ざります。修正したい部分があれば、コメント領域には触らず、下の自分の領域だけ書き直すのが安全です。

ステップ6: 保存して閉じる

VS Codeで保存します。MacならCmd+S、WindowsならCtrl+Sです。タブを閉じてClaude Codeのターミナル画面に視線を戻すと、入力欄に書き直した指示文が丸ごと入っています。コメント行は消えています。あとはEnterで送信するだけです。

つまり Ctrl+G は何をしてくれるのか

  • やってくれる: 入力欄の文字列を外部エディタに渡して、保存時にそのまま入力欄に戻す。/configでONにすれば、Claudeの前回応答を # 付きで参照しながら書ける
  • やってくれない: エディタの選択や起動の管理。これは$EDITORの設定値に丸投げで、Claude Codeは中身を見ない
  • 意味が薄い場面: 1〜2行で済む短いプロンプト。普通に入力欄で打ってEnterのほうが速い

使いどころ3シナリオ

シナリオ1: 副業ブログのSEO設計をClaudeに渡したい

副業で家計簿アプリのレビューブログを始めたとして、Claudeに「想定読者・競合・差別化軸・記事構成テンプレ」を1回でまとめて渡したい。これを入力欄で書こうとすると、5段落ぐらいになって矢印キーで戻る回数が爆発します。Ctrl+Gでエディタに移して、構造を確認しながら書けば、最初の1メッセージが整います。

シナリオ2: Claudeの前回応答に対する細かい指摘を返したい

Claudeが提示してきたコードや文章の一部だけ直したい、しかも「ここの3行目、こうしたい」を明示的に書きたい場面。/configでONにしておけば、応答が#で並ぶので、該当行を見ながら下の領域に「3行目をこう書き換えて、ついでに変数名も○○にして」と並列で指示が書けます。応答をスクロールで何度も戻る手間が消えます。

シナリオ3: 仕様書を貼り付けて整形してから送りたい

ClickUpやNotionに書いてある仕様メモをClaudeに渡したいけど、貼り付けた直後はインデントが壊れていたり、不要なメタ情報が混ざっていたりする。入力欄でこれを掃除するのはしんどいので、Ctrl+Gでエディタに移して、シンタックスハイライトと矩形選択を使いながら整形してから戻す。VS CodeならCmd+Dで同じ単語を一括選択できるので、置換が圧倒的に楽です。

初心者が踏みやすい落とし穴

  • Ctrl+X Ctrl+Kと打ち間違えるCtrl+Xを押した後の2打目でEを狙ったつもりがKを押すと、バックグラウンドで動いてる小さなAIワーカーが全員強制終了します。これはbackground subagentと呼ばれる仕組みです。しかも3秒以内にもう1回Ctrl+X Ctrl+Kを押すと確定なので、誤爆コンボにも注意
  • $EDITOR未設定でviが立ち上がって脱出できない:q!と打ってEnterで抜けられます。覚えておかないと、ターミナルごと閉じる羽目になる
  • VS Codeを$EDITORにする時に-wを忘れるexport EDITOR='code'だけだと、ファイルが開いた瞬間に「終わったよ」と返してしまい、書く前に入力欄が空で戻ってきます。必ずexport EDITOR='code -w'と書く
  • #コメント行の中身を編集してしまう。コメント領域は読み返すためだけのもの。1文字でも#を消したり、行を分割したりすると、その行の一部がプロンプトに紛れ込んでClaudeの解釈が乱れる
  • 保存せずに閉じた場合、入力欄はCtrl+Gを押す前の状態のまま戻ります。vimなら:q!、nanoならCtrl+XNで保存せずに抜けられます。気が変わった時の戻り道として覚えておくと安心です
  • ~/.claude/keybindings.jsonで別の機能に上書きされている場合、Ctrl+Gを押しても何も起きません。/keybindingsを叩いて設定ファイルを開き、"ctrl+g": nullのように無効化していないか確認します
  • VS CodeやCursorのターミナル機能から動かしていると、Ctrl+Gがエディタ側に吸われることがあります。エディタ本体の検索ジャンプ等のショートカットと競合するため。素のターミナル(iTerm2、Terminal.app、Windows Terminalなど)で動かすか、エディタ側のキー設定を見直すと解消します

書き方

Ctrl+G
(または Ctrl+X Ctrl+E)

やってみるとこうなる

入力

(入力欄に文字列を書いた状態で)Ctrl+G を押す

出力例

$EDITOR で指定されたアプリ(VS Codeなど)の新しいタブに、入力欄の中身が一時ファイルとして開かれる。/config で Show last response in external editor を ON にしてあれば、画面上部に Claude の前回応答が #-comment で並ぶ。書き直して保存して閉じると、コメント行は自動削除され、書いた内容だけが Claude Code の入力欄に戻る。Enter で送信。

このページに出てきた言葉

$EDITOR
パソコンが起動時に覚えてる設定値で、「テキストファイルを開けと言われたとき、どのアプリで使うか」を指定する場所。<code>echo $EDITOR</code> で中身を確認できる
Ctrl+X Ctrl+E
Ctrl+G と完全同義の打ち方。Bashの入力欄でも昔から同じ動きをする、伝統的な「エディタに移して書き直す」ショートカット
Ctrl+X Ctrl+K
別物のショートカット。3秒以内に2連打すると、バックグラウンドで動いている小さなAIワーカー(subagent)が全員強制終了する。Ctrl+X Ctrl+E と打ち間違えやすいので注意
Show last response in external editor
/config の中にある設定。ONにすると、Ctrl+G でエディタを開いた時に Claude の前回応答が <code>#</code> 付きのコメント行として添えられる。保存して閉じる時に自動で削除される
code -w
VS Codeをターミナルから呼び出すコマンドに「閉じるまで待ってくれ」という指定を付けた書き方。VS Codeを $EDITOR にする時は必須
~/.claude/keybindings.json
Claude Codeのキー割り当てを書き換えるための設定ファイル。<code>/keybindings</code> を叩くと開く。<code>"ctrl+g": null</code> のように書くと無効化できる

関連項目

公式ドキュメント

https://code.claude.com/docs/en/interactive-mode

-

← 戻る