原文(日本語訳)
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]
# → エディタで編集
# → 保存して戻る