原文(日本語訳)
複数行および折り返しテキスト入力において、上下矢印キーが履歴ナビゲーションよりもカーソル移動を優先するようになりました
原文(英語)
Fixed up/down arrow keys in multi-line and wrapped text input to prioritize cursor movement over history navigation
概要
複数行にわたる入力や、長いテキストが折り返されている場合、上下矢印キーがコマンド履歴ではなくカーソル移動を優先するようになりました。これにより、長いプロンプトの編集がより直感的になります。
問題の背景
修正前の問題
- 複数行入力中に上下矢印キーを押すと、意図せずコマンド履歴が表示された
- 長いテキストが折り返されている場合、行内の移動ができなかった
- 編集中のテキスト内を自由に移動できず、使いにくかった
修正後
- カーソルがまだ移動できる場合は、行間移動が優先される
- カーソルが最初の行または最後の行にあり、それ以上移動できない場合のみ履歴ナビゲーションになる
- より自然で直感的な編集体験
基本的な使い方
複数行のプロンプトを入力する際、上下矢印キーで自由に行間を移動できます。
bash
claude
> 長いプロンプトを入力
> 複数行にわたって
> 詳細な指示を書く
# ↑↓ キーで各行間を移動できる実践例
複数行プロンプトの編集
bash
claude
> 以下の要件でコンポーネントを作成してください:
> 1. TypeScript を使用
> 2. Props の型定義を含める
> 3. エラーハンドリングを実装
# カーソルが3行目にある状態で ↑ を押す
# → 2行目に移動(履歴ではない)
# さらに ↑ を押す
# → 1行目に移動
# 1行目で ↑ を押す
# → 前のコマンド履歴が表示される(これ以上上に移動できないため)長いテキストの折り返し編集
bash
claude
> この非常に長いプロンプトはターミナルの幅を超えて折り返され、複数行に表示されますが、実際には1行の入力です
# 折り返された部分でも ↑↓ で移動できる
# ↑ = 上の折り返し行へ移動
# ↓ = 下の折り返し行へ移動
# 最上部で ↑ = 履歴へ
# 最下部で ↓ = 履歴へ(次のコマンド)Shift+Enter での複数行入力
bash
claude
> 最初の行を入力
[Shift+Enter]
> 2行目を入力
[Shift+Enter]
> 3行目を入力
# ↑↓ で各行を自由に移動して編集
# 1行目に戻って修正も簡単コードブロックの編集
bash
claude
> 以下のコードをリファクタリングして:
[Shift+Enter]
> ```javascript
[Shift+Enter]
> function example() {
[Shift+Enter]
> return 'test';
[Shift+Enter]
> }
[Shift+Enter]
> ```
# コードブロック内を ↑↓ で移動して編集
# function の行に戻って変更、など箇条書きリストの編集
bash
claude
> タスクリスト:
[Shift+Enter]
> - ユーザー認証機能の実装
[Shift+Enter]
> - データベーススキーマの設計
[Shift+Enter]
> - API エンドポイントの作成
[Shift+Enter]
> - テストの追加
# ↑ で上の項目に戻って編集
# 順序を変更したり、内容を修正したりカーソル移動の優先順位
優先順位1: 行内移動
bash
# カーソルが行の途中にある場合
> テキスト|入力中
# ↑↓ = 前後の行へ移動優先順位2: 履歴ナビゲーション
bash
# カーソルが最初の行にある場合
> |最初の行
# ↑ = 前のコマンド履歴
# カーソルが最後の行にある場合
> 最後の行|
# ↓ = 次のコマンド履歴他のナビゲーション方法との組み合わせ
左右矢印キー
bash
# ← → で左右に移動(従来通り)
> テキスト|入力
# ← で左へ、→ で右へHome/End キー
bash
# Home = 行の先頭へ
# End = 行の末尾へ
> テキスト入力中
[Home] → |テキスト入力中
[End] → テキスト入力中|Ctrl+A / Ctrl+E
bash
# Ctrl+A = 行の先頭へ(Emacs スタイル)
# Ctrl+E = 行の末尾へ(Emacs スタイル)Option/Alt + 矢印(単語移動)
bash
# Option+← = 前の単語へ
# Option+→ = 次の単語へ
> これは テスト メッセージ|です
[Option+←] → これは テスト |メッセージですVim モードでの動作
bash
# Vim モードでも同様に動作
claude
> /vim
# ノーマルモードで
> 複数行の
> テキスト入力
# j = 下へ移動
# k = 上へ移動
# gg = 最初の行へ
# G = 最後の行へ注意点
- 折り返し検出: ターミナルの幅によって折り返し位置が変わります
- ターミナルの対応: 一部の古いターミナルでは正しく動作しない場合があります
- Vim モード: Vim モードでは別の動作ルールが適用されます(j/k キーなど)
履歴ナビゲーションへのアクセス
複数行編集中でも、履歴にアクセスしたい場合:
方法1: カーソルを端に移動
bash
# 最初の行の先頭に移動してから ↑
[Ctrl+A] を押して行頭へ
# さらに何度か ↑ を押して最初の行へ
# 最初の行で ↑ → 履歴が表示される方法2: Ctrl+R で検索
bash
# 履歴検索を使用(どの位置からでもアクセス可能)
[Ctrl+R]
# 検索語を入力方法3: /resume コマンド
bash
# 過去のセッションを再開
> /resumeトラブルシューティング
矢印キーが期待通りに動作しない
bash
# 1. ターミナルの互換性を確認
# iTerm2, WezTerm, Kitty などの最新ターミナル推奨
# 2. ターミナルモードの確認
# Kitty keyboard protocol が有効になっているか確認
# 3. Vim モードの確認
# Vim モードが有効な場合は j/k を使用
> /vim関連機能
外部エディタ(Ctrl+G)
bash
# 複雑な複数行編集は外部エディタで
[Ctrl+G]
# エディタで編集して保存プロンプトのやり直し
bash
# Ctrl+U = 現在の行をクリア
# Ctrl+_ = 入力を取り消し(アンドゥ)