Skip to content

原文(日本語に翻訳)

複数行および折り返しテキスト入力において、上下矢印キーが履歴ナビゲーションよりカーソル移動を優先するように修正

原文(英語)

Fixed up/down arrow keys in multi-line and wrapped text input to prioritize cursor movement over history navigation

概要

Claude Code v2.1.20では、複数行のテキスト入力時における上下矢印キーの動作が改善されました。以前は、複数行のプロンプトを編集している際に上下矢印キーを押すと、意図に反してコマンド履歴のナビゲーションが優先され、行間のカーソル移動ができませんでした。この修正により、複数行入力時はまずカーソル移動が優先され、より自然な編集が可能になります。

基本的な使い方

複数行のテキストを入力する際、上下矢印キーで行間を移動できます:

bash
# 複数行のプロンプトを入力
> 以下のファイルを確認して:
  1. src/index.js
  2. src/utils.js
  3. src/config.js

# カーソルが2行目にある状態で↑キーを押す
# 修正前:コマンド履歴が表示される(意図しない動作)
# 修正後:カーソルが1行目に移動する(期待通りの動作)

実践例

長いプロンプトの編集

複数行にわたる詳細な指示を編集する場合:

bash
> このプロジェクトで以下のタスクを実行してください:

  1. すべてのテストを実行
  2. カバレッジレポートを生成
  3. 失敗したテストを修正
  4. 変更をコミット

  各ステップの結果を報告してください。

# 1行目から4行目に移動したい場合:
# ↓キーを3回押す → 正しく4行目に移動
# ↑キーを2回押す → 正しく2行目に移動

# 修正前の問題:
# - ↓を押すと履歴の「次」に移動してしまう
# - 行間の編集が困難

コードブロックの編集

プロンプト内にコードを含める場合:

bash
> 以下のコードをリファクタリングして:

  function getData() {
    const result = api.fetch();
    return result;
  }

  パフォーマンスを改善してください。

# 関数の中身を編集したい:
# 3行目(const result...)に移動
# ↑↑で上に移動、↓↓で下に移動
# 修正により、スムーズに編集可能

箇条書きリストの追加・編集

長いリストを作成・修正する際:

bash
> これらの機能を実装して:
  - ユーザー認証
  - データベース接続
  - API エンドポイント
  - エラーハンドリング
  - ロギング

# 「API エンドポイント」の行を修正したい
# ↑キーで該当行まで移動
# 編集して↓キーで下の行へ

# 修正により:
# - リスト内を自由に移動可能
# - 各項目を簡単に編集できる

折り返し表示されている長い行の編集

ターミナル幅を超える長い行を入力した場合:

bash
> この非常に長いプロンプトは自動的に折り返され、複数行に表示されますが、実際は1行のテキストです。この場合でも上下キーで視覚的な行を移動できます。

# 視覚的に3行に折り返されている場合:
# ↑キーで上の視覚的な行に移動
# ↓キーで下の視覚的な行に移動

# 修正により:
# - 折り返し表示でも直感的にナビゲート可能
# - 長いテキストの編集が容易

履歴ナビゲーションとの使い分け

カーソルが端にある場合は履歴ナビゲーションが有効:

bash
# 複数行入力の例
> Line 1
  Line 2
  Line 3

# カーソルが1行目の先頭にある状態で↑
# → これ以上上に行けないので、コマンド履歴の前のコマンドへ

# カーソルが3行目の末尾にある状態で↓
# → これ以上下に行けないので、コマンド履歴の次のコマンドへ

# これにより:
# - 行間移動と履歴ナビゲーションの両方が使える
# - 自然な動作フローを実現

注意点

  • この修正は複数行入力時のみ影響します(単一行入力では従来通り履歴ナビゲーション)
  • カーソルが最上行の先頭にある場合、↑キーでコマンド履歴に移動します
  • カーソルが最下行の末尾にある場合、↓キーでコマンド履歴に移動します
  • 折り返し表示されている場合も、視覚的な行間を移動できます
  • Vimモードを使用している場合、ノーマルモードでの j/k キーも同様の動作をします

関連情報