Ctrl+S(コントロール・エス)

キーバインド
Ctrl+S
コントロール・エス
Ctrl+Rで過去のプロンプト履歴を逆引き検索している最中に、検索範囲を「このセッションだけ」「このプロジェクトだけ」「全プロジェクト」の3段階で切り替えるキーバインド。単独では機能せず、Ctrl+R検索モードに入ってからだけ反応する

Claude CodeでCtrl+Rを使って過去のプロンプトを検索している人向け

複数プロジェクトを並行で進めていて、Ctrl+Rで過去プロンプトを検索すると他案件のものまで混ざって候補がノイジーになる場面で、検索バーが出ている状態でCtrl+Sを押して「このセッション」や「このプロジェクト」にスコープを絞り込む

Claude Codeのターミナルで過去に打ったプロンプトを呼び戻したい時、Ctrl+Rで履歴を逆方向に検索できます。ところがデフォルトでは「全プロジェクトの履歴」が対象なので、複数プロジェクトを行き来している人ほど他案件のプロンプトが混ざってノイズだらけになる。この検索範囲を「このセッションだけ」「このプロジェクトだけ」「全プロジェクト」の3段階で切り替えるのが Ctrl+S です。

単独で叩くキーではありません。Ctrl+Rで検索モードに入った後でだけ意味を持つ「絞り込み切替キー」です。

噛み砕くと

本棚の前で「この本どこにあったっけ」と探している場面を想像してください。Ctrl+Rは本棚全体を「あいうえお順」に逆引きする操作。Ctrl+Sはその検索範囲を「いま開いてる棚」「この部屋の本棚全部」「家中の本棚全部」の3つで切り替えるスイッチ。

つまり本を探すのが Ctrl+R、どの棚を探すかを決めるのが Ctrl+S。役割が完全に分かれています。

大事な前提:Ctrl+Sは Ctrl+R を押した後だけ反応する

普通のターミナル操作中に Ctrl+S を叩いても、Claude Codeとしては何も起きません。一部の端末では画面出力が止まるおまじない(XOFF)として解釈されて、慌てて Ctrl+Q で復帰させる羽目になることすらあります。

必ず先に Ctrl+R を押して「(reverse-i-search):」みたいな検索バーが画面下に出ている状態を作ってから Ctrl+S を押す。これが鉄則です。

「料理ブログ開発中、過去のあの実装指示を探したい」を例に、実際の手順を見る

料理ブログのコードベースをClaude Codeで開発していて、過去に「レシピを材料カテゴリで絞り込む機能」を依頼したプロンプトを再利用したい、という場面で再現してみます。

ステップ1:Ctrl+Rで検索モードに入る

Claude Codeの入力欄でカーソルが点滅している状態から、Ctrl+Rを1回押します。

(reverse-i-search):

こんな見た目の検索バーが画面下に出てきます。これが「逆引き検索モード」のサイン。

ステップ2:検索キーワードを打つ

「filter」と打ち込みます。すると、たとえば過去に他案件で書いた「画像をfilterして圧縮する処理」のプロンプトが先に出てくるかもしれません。

(reverse-i-search)`filter`: 画像をfilterして圧縮する処理を書いて...

この時点では「全プロジェクトの履歴」から検索されている状態です。料理ブログ案件のものに絞れていない。

ステップ3:ここで初心者がやりがちな勘違い

Ctrl+Rをもう1回押すと「次に古い match」に移動します。Ctrl+Sと混同しやすいので注意。

古い match を順に見るのが Ctrl+R、検索範囲そのものを切り替えるのが Ctrl+S。前者は縦移動、後者はモード切替、と覚えるとごちゃつきません。

ステップ4:Ctrl+Sで「このセッション」に絞る

いま開いている料理ブログのセッション内で打った指示だけ見たいので、Ctrl+Sを1回押します。検索範囲の表示が「all projects」から「this session」に切り替わります。

(reverse-i-search [this session])`filter`: recipeをcategory filterで絞り込む実装をして...

5分前に出した指示をちょっと言い回しを変えて再送したい、みたいな時にこの1段絞り込みが効きます。

ステップ5:もう一段切り替えて「このプロジェクト」全体に広げる

さらに Ctrl+S を押すと「this project」に切り替わります。今回の料理ブログのフォルダで過去に打ったプロンプト全部が対象になる。今のセッションだけでなく、昨日や先週このフォルダで動かした履歴も拾えるようになります。

(reverse-i-search [this project])`filter`: recipeをcategory filterで絞り込む実装をして...

「先週ここで何か似た指示を出した気がする、けど今のセッションには無い」みたいな場面で重宝するのがこのスコープです。

ステップ6:Tabで編集モードに戻す

欲しいプロンプトが見つかったら、TabまたはEscを押します。検索バーが閉じて、見つかったプロンプトが入力欄に貼り付けられた状態に戻る。ここから一部だけ書き換えて再送できます。

そのまま実行してよければEnterでもOKですが、ほぼ確実に何か手直ししたいのでTab派の方が安全です。

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

  • やってくれるCtrl+R逆引き検索の対象範囲を「全プロジェクト」「このプロジェクト」「このセッション」の3段で切り替える
  • やってくれる:押すたびに次のスコープに移動するループ動作(all projects → this session → this project → all projects ...)
  • やってくれない:プロンプトを「保存」「stash」「退避」する機能ではない。ロードマップや一部解説記事で「Ctrl+S = プロンプト保存」と書かれていることがあるが、公式ドキュメントにそんな機能はない
  • 意味が薄い場面:単一プロジェクトしか触っていない人。デフォルトの「all projects」でも実質的にそのプロジェクトの履歴しか出ないので、絞る必要がない

使いどころ3シナリオ

シナリオ1:複数案件を行き来していて履歴がノイジー

料理ブログ、家計簿アプリ、副業のLP制作、と3〜4案件をClaude Codeで並行で進めていると、Ctrl+Rで「login」と打っただけで全案件の認証実装プロンプトが混ざって出てきます。Ctrl+Sを2回押して「this project」に絞れば、いま作業中の案件のmatchだけが残るので、目当てのプロンプトに3秒で着地できる。

シナリオ2:同じセッション内で5分前の指示を流用

料理ブログでレシピ一覧ページを実装中、「カードのhoverアニメーションを足して」と数分前に指示して、続けて材料アイコン部分にも同じ系統のアニメーションを足したい場面。Ctrl+R→「hover」→Ctrl+Sを1回押して「this session」に絞り込むと、たった今書いた指示文がトップに出る。コピペで言い回しだけ書き換えて再送すれば、表記揺れによる実装ブレも防げます。

シナリオ3:プロジェクト横断で「あの構文どう書いたっけ」を発掘

逆に、過去案件で書いた「Markdownを段落単位でparseするPythonスニペット作って」みたいな1行依頼を、別案件でもう一度使いたい時。Ctrl+R→「Markdown」のままスコープはデフォルトの「all projects」を維持して、過去案件まで含めて検索する。これが Ctrl+Sの真逆の使い方で、絞らない選択肢を意識的に取るパターンです。

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

  • roadmapや一部記事に「Ctrl+S=プロンプト保存(stash)」と書かれている誤情報がある。公式ドキュメントにそんな機能は存在しません。実態はCtrl+R検索モード中の scope cycle キー。stash/保存/退避という単語は忘れる
  • 単独でCtrl+Sを叩いても何も起きない。先にCtrl+Rで検索モードに入っていることが絶対条件。一部端末ではXOFFと解釈されて画面が止まる事故もあるので、検索バーが出ていない時は押さない
  • Ctrl+R再押し(older matchを順に見る)とCtrl+S(scopeを切り替える)を混同しやすいCtrl+R=match間の縦移動、Ctrl+S=検索範囲のモード切替、と役割を分けて覚える
  • scopeはループする。「all projects → this session → this project → all projects ...」と順送りで、勢いで2回押すと意図と違うスコープになります。画面に出るスコープ表示を毎回確認する
  • 検索バーが出ている間は他のキー入力が全部検索バーに吸われる。抜けるにはTabEscEnterCtrl+Cか、空の検索バーでBackspace。間違ってEnterを押すとそのまま実行されてしまうので、編集したい場合はTabEscを選ぶ
  • 履歴は作業フォルダごとに保存されるcdで別フォルダに移動してからclaudeを起動した場合、そのフォルダ独自の履歴が「this project」スコープの中身になります。意図したプロジェクトの履歴が出てこない時はまず作業フォルダを疑う
  • /clearで履歴がリセットされる。過去のやりとり自体は/resumeで復帰できますが、Ctrl+Rの検索対象からは消えます。/clear直後に「あの指示どこ行った」となっても reverse search からは見つからないので、必要なプロンプトは別の場所に控えておく

書き方

Ctrl+R で reverse search モードに入った後 → Ctrl+S を押すと scope が cycle する(all projects → this session → this project → all projects ...、デフォルトの all projects から1回押すと this session、2回押すと this project になる)

やってみるとこうなる

入力

Ctrl+R
filter
Ctrl+S

出力例

(reverse-i-search [this session])`filter`: recipeをcategory filterで絞り込む実装をして...

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

プロンプト
Claude Codeに対して「こうしてほしい」と打ち込む指示文
履歴
過去に打ったプロンプトをClaude Codeが自動で記録したリスト。上下矢印キーや<code>Ctrl+R</code>で呼び戻せる
セッション
Claude Codeを起動してから終了するまでの1回の作業単位。<code>/clear</code>で区切り直せる
プロジェクト
Claude Codeを起動した時の作業フォルダ単位。履歴はフォルダごとに別管理される
reverse search
新しい履歴から古い履歴に向かって逆方向に検索する仕組み。<code>Ctrl+R</code>で起動する
scope cycle
検索範囲を順送りで切り替えるループ動作。<code>Ctrl+S</code>を押すたびに次の範囲に移る
ターミナル
黒い画面で文字のコマンドを打ち込む画面。Windowsだと「コマンドプロンプト」「PowerShell」、Macだと「ターミナル」アプリ

関連項目

公式ドキュメント

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

-

← 戻る