Skip to content

原文(日本語訳)

UP 矢印キーでコマンド履歴をナビゲートする際に、入力中のドラフトプロンプトが失われる問題が修正されました

原文(英語)

Fixed draft prompt being lost when pressing UP arrow to navigate command history

概要

プロンプトを入力中に UP 矢印キーで履歴をナビゲートすると、入力していたドラフト(下書き)が失われてしまう問題が修正されました。これにより、履歴を確認した後でも、元の入力に戻ることができます。

問題の背景

修正前の問題

  • プロンプトを入力中に UP キーで履歴を表示すると、入力中のテキストが失われた
  • 履歴を見た後、元の入力を再度タイプし直す必要があった
  • 誤って UP キーを押すと、作業中のプロンプトが消えてしまった

修正後

  • 履歴をナビゲートしても、ドラフトプロンプトは保存される
  • DOWN キーで履歴の最後まで進むと、元のドラフトが復元される
  • より安全で使いやすい履歴ナビゲーション

基本的な使い方

プロンプトを入力中に UP キーで履歴を確認し、DOWN キーで元の入力に戻れます。

bash
claude
> 新しいプロンプトを入力中...
# ↑ を押して履歴を確認
# → 前のコマンドが表示される
# ↓ を押して戻る
# → "新しいプロンプトを入力中..." が復元される

実践例

履歴を参照しながらプロンプト作成

bash
claude
> React コンポーネントを作成して、前回と似た構造で
# 「前回の指示はどうだったっけ?」と思い出したい

# ↑ を押して前のコマンドを確認
> [履歴] TypeScript で認証コンポーネントを作成して...

# 確認したので ↓ で元のドラフトに戻る
> React コンポーネントを作成して、前回と似た構造で
# ✅ 入力が保存されていて続きを書ける

複数の履歴を参照

bash
claude
> 新しいAPI実装の計画を立てて
# 過去のAPI実装を参考にしたい

# ↑↑↑ で複数の履歴を遡る
> [履歴3] データベースAPIを実装して
> [履歴2] 認証APIを実装して
> [履歴1] ユーザーAPIを実装して

# 参考になるものを見つけたら ↓↓↓ で戻る
> 新しいAPI実装の計画を立てて
# ✅ ドラフトが保存されている

誤って UP を押した場合

bash
claude
> 長い詳細なプロンプトを入力中...
> 1. 要件A
> 2. 要件B
> 3. 要件C
# 誤って ↑ を押してしまった

> [履歴] 前のコマンド

# ↓ を1回押すだけで復元
> 長い詳細なプロンプトを入力中...
> 1. 要件A
> 2. 要件B
> 3. 要件C
# ✅ すべての入力が保存されている

履歴からコマンドをコピー

bash
claude
> 新しいタスク:
# 前のタスクの一部を再利用したい

# ↑ で前のコマンドを表示
> [履歴] 前のタスク:コンポーネント実装

# 必要な部分をコピー(Ctrl+A → Ctrl+C)
# ↓ で元のドラフトに戻る
> 新しいタスク:
# ペースト(Ctrl+V)
> 新しいタスク:コンポーネント実装と同様に...

長いプロンプトの作成中断

bash
claude
> とても長いプロンプトを作成中
> 複数の要件を列挙...
> 詳細な仕様を記述...
# 「前回の似たタスクを確認したい」

# ↑ で履歴確認
# 複数の履歴を見て回る
# ↑↑↑↑↑

# 確認後、↓↓↓↓↓ で戻る
> とても長いプロンプトを作成中
> 複数の要件を列挙...
> 詳細な仕様を記述...
# ✅ すべて保存されている、続きを書ける

動作の詳細

ドラフトの保存タイミング

bash
# 何か入力した状態で UP を押した瞬間にドラフトが保存される
> テキスト入力中|
[↑ を押す]
# → ドラフト "テキスト入力中" が保存される
# → 履歴が表示される

ドラフトの復元タイミング

bash
# 履歴の最後(最新)を超えて DOWN を押すとドラフトが復元
> [履歴] 最新のコマンド
[↓ を押す]
# → "テキスト入力中" が復元される

空のドラフト

bash
# 何も入力していない状態で UP を押した場合
> |
[↑ を押す]
# → 空のドラフトが保存される(実質的に影響なし)

[↓ で戻る]
> |
# → 空の入力欄に戻る

他の履歴機能との組み合わせ

Ctrl+R(履歴検索)との併用

bash
claude
> 新しいプロンプト入力中...

# Ctrl+R で履歴検索
[Ctrl+R]
# 検索語を入力
> search: api
# 該当する履歴が表示される

# Esc でキャンセル
[Esc]
> 新しいプロンプト入力中...
# ✅ ドラフトが保存されている

Vim モードでの動作

bash
# Vim モードでも同様
claude
> /vim

# ノーマルモードで k(上)を使用
> 入力中のテキスト
[Esc] → k を押す
# → 履歴が表示される

# j(下)で戻る
# → ドラフトが復元される

注意点

  • 履歴の終端: 履歴の最後を超えて DOWN を押したときにドラフトが復元されます
  • 新しい履歴: 履歴をナビゲート中に Enter を押して新しいコマンドを実行すると、元のドラフトは破棄されます
  • セッション固有: ドラフトは現在のセッションでのみ保持されます

以前の回避策(不要になりました)

修正前に使用されていた方法

bash
# プロンプトをどこかにコピーしてから履歴確認
> 長いプロンプト...
[Ctrl+A → Ctrl+C でコピー]
[↑ で履歴確認]
[Ctrl+V でペースト]

現在(修正後)

bash
# そのまま履歴確認、戻るだけ
> 長いプロンプト...
[↑ で履歴確認]
[↓ で戻る]
# ✅ 自動的に復元される

トラブルシューティング

ドラフトが復元されない場合

bash
# 1. 履歴の最後まで DOWN で進んでいるか確認
# 履歴中で止まっている可能性

# 2. 新しいコマンドを実行していないか確認
# Enter を押すとドラフトは破棄される

# 3. セッションを再起動していないか確認
# セッションをまたいでドラフトは保持されない

複数行入力のドラフト

bash
# 複数行入力もすべて保存される
> 1行目
[Shift+Enter]
> 2行目
[Shift+Enter]
> 3行目

[↑ で履歴]
[↓ で戻る]
# ✅ 3行すべてが復元される

関連機能

プロンプトスタッシュ(Ctrl+S)

bash
# より永続的な保存が必要な場合
> 重要なプロンプト
[Ctrl+S]
# → プロンプトがスタッシュに保存される
# 後で復元可能

外部エディタ(Ctrl+G)

bash
# 複雑なプロンプトは外部エディタで
[Ctrl+G]
# → エディタで編集
# → 保存して戻る

関連情報